Языческие разборки.

 
1 8 9 10 11 12 13 14
+
-
edit
 

varban

администратор
★★★
> Как Вы думаете, этого достаточно для того, что бы я спешно бросала Паскаль и переходила на Си?

Ни в коем случае!

Вот только если работать не самой, а в коллективе, придется писать на то, на что надо, а не на то, что любишь. Если математика, то и на фортране могут. Во всяком случае, меня заставляли весь софт по РДТТ писать на фортране, поскольку в НИИ это был рабочий язык.
Заставляли просто - на всех ЭВМ был фортран :)
 
RU Наталья #26.09.2001 00:19
+
-
edit
 

Наталья

новичок
varban>Ни в коем случае!
Примерно так я и подумала. :)


to Лазутченко
Олег Лазутченко>...Насильно мил не будешь.
А я и не прошу меня насиловать. Я прошу рассказать про преимущества Си.
Олег Лазутченко>...берут паскаль ...и пишут девяносто пятые винды.
А я наивно полагала, что Win** на Си сделаны. :(
 
+
-
edit
 

Voennich

опытный

> Наталья >А я и не прошу меня насиловать. Я прошу рассказать про преимущества Си.
А С не лучше и не хуже оно просто другое и для других целей.
 

TEvg

аксакал

админ. бан
>А С не лучше и не хуже оно просто другое и для других целей.
Это почему Ся другая? Довольно близкий к Паскалю язык...
Для каких других целей? Чего можно написать на Ся, но нельзя (или неэффективно) на Паскале?
 
RU asoneofus #26.09.2001 05:12
+
-
edit
 

asoneofus

старожил

>>А С не лучше и не хуже оно просто другое и для других целей.
TEvg>Это почему Ся другая? Довольно близкий к Паскалю язык...
TEvg>Для каких других целей? Чего можно написать на Ся, но нельзя (или неэффективно) на Паскале?
:) Где курица а где яйцо... Паскаль скорее похож на Си, и чем дальше - тем больше...
А чего нельзя написать на Паскале? Допустим, любую программу для SGI, HP, IBM-WS... а уж для спецухи - и подавно.
Кто поддерживает Паскаль? Да только Борланд-Интерпризе, и всё, а Си.. трудно сказать, быстрее кто Не поддерживает...
Вынь 95 - написан на си и асме, а каллбаки - типичный вызов и для си...
"... аще где в книге сей грубостию моей пропись или небрежением писано, молю Вас: не зазрите моему окаянству, не кляните, но поправьте, писал бо не ангел Божий, но человек грешен и зело исполнен неведения ..."  
RU Владимир Малюх #26.09.2001 05:20
+
-
edit
 
Наталья>А я и не прошу меня насиловать. Я прошу рассказать про преимущества Си.

Ну как сказать, это скорее не столько преимущества скольк отличия. Отличия примерно такие как у скоростного спортивного автомобиля с шестиступенчатой коробкой (вроде Porshe или Ferrari) и комфортабельного седана с автоматом (вроде Toyota или Volvo). Последние можно научиться водить за небольшое время и вполне успешно ездить по большинству бытовых причин. А на первых приходится учитсья дольше и глубже, но как следствие - очень тонкий личный контроль за процессом, управляемость и т.д.

Так и с языками, наличие довольно жесткого контроля типов, более избыточный синтаксис и прочие, специально введенные авторами в язык свойства, делают языки вроде Паскаля, Молулы и Оберона более простыми в изучении доступными в использовании без больших затрат на подготовку программиста.

В то же время все это человеку с более глубокой профессиональной подготовкой скорее мешает, ему удобнее и необходимее именно четкий личный контроль над тем кодом, что он напишет, лаконичность синтаксиса (за десять лет по 8 часов можно толко на одних {} вместо begin end месяцы стучания по кнопкам сэкономить, но это лишь пример). При этом отвественность за ошбки, неконтролируемые средствами языка, несет именно разработчик, но он априори на это ориентирован и к этому готов. Хотя все это делает язык на первый взгляд новичка "неуютным", "строгим". Но кто обещал мягкий салон в кокпите Формулы-1?

Кроме того имеет значение факт распостраненности, совместимости и продвинутости инструментария, но это уже скорее вторично, производное от назначения языков.

Такими эти языки были задуманы и такими и развиваются. При всем при этом конечная производительность программ может и не отличаться, но скорость создания программ профессионалами значительно выше. Чтобы это понять нужно всъерьез попрограммировать и на том и на другом. Редко кому это достается, отсюда однобокость оценок. Ветеранам моего коллектива пришлось в конце 80-х-начле 90-х очень много программировать на Модуле-2, позже перейдя на С нам стало понятнее различие именно в отношении профессиональной применимости языков. В принципе писать можно на чем угодно (и профи сами умеют это делать на многих языках), но на сегодняшний день выходит так, что сложные и ответсвенные приложения и системы наиболее эффективно (по времени и затратам) разрабатывать как правило на С силами профи. Но те же профи совершенно ясно осознают, что некторые системы, даже в ущерб их (разработчиков) личной производительности в конечном итоге правильнее написать на той же Модуле, тем самым сократив или даже гарантированно сведя на нет возможность появления критических ошибок. Это относится в первую очередь к встроенным системам.

Посему, если перед вами не стоит задача разработки сложных продуктов, пишите себе на том, что есть -Паскаль, Модула, Java или VB уже не суть важно. Если же собираетесь в первую и высшую лигу - никуда не деться, придется освоить С/С++.

Олег Лазутченко>>...берут паскаль ...и пишут девяносто пятые винды.
Наталья>А я наивно полагала, что Win** на Си сделаны. :(

Олег, не пугай дам, винды написаны на С, достоверно известно :)
Чуть-чуть асма еще.
Maschinen muessen "idiotensicher" werden  
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★☆
Всё же, Win3.x писались на Паскале. Вспомните - int PASCAL WinMain()(};. Ну а 9x - те да, на Си. Хотя синтаксис остался... int WINAPI WinMain(){};...
 

TEvg

аксакал

админ. бан
>В то же время все это человеку с более глубокой профессиональной подготовкой скорее мешает, ему удобнее и необходимее именно четкий личный контроль над тем кодом, что он напишет
Более четкого контроля чем на асме я еще не видал. Как насчет OP+asm?

>за десять лет по 8 часов можно толко на одних {} вместо begin end месяцы стучания по кнопкам сэкономить
Угу. А еще путем написания float(a)/float(b) вместо a/b.

В общем не вижу я преимуществ Ся перед асмом.
 
RU Владимир Малюх #26.09.2001 08:00
+
-
edit
 
>>В то же время все это человеку с более глубокой профессиональной подготовкой скорее мешает, ему удобнее и необходимее именно четкий личный контроль над тем кодом, что он напишет
TEvg>Более четкого контроля чем на асме я еще не видал.

При создании крупных систем уже падает эффективность труда программиста по отношению к программированию на ЯВУ. Растут издержки при написании крупных программ, хлопоты с переиспользованием кода итп итд.

TEvg>Как насчет OP+asm?

А зачем именно ОР если и так дошло до асма?

>>за десять лет по 8 часов можно толко на одних {} вместо begin end месяцы стучания по кнопкам сэкономить
TEvg>Угу. А еще путем написания float(a)/float(b) вместо a/b.

А это в общем-то нетипична операция. В хорошо запроектированной структуре данных приведение типов - штука редкая. Либо эти a и b сразу float, либо результат нужен целый.

TEvg>В общем не вижу я преимуществ Ся перед асмом.

Перед асмом? Вы с дуба упали. Попробуйте разработать на сам что либо покрупнее, с ума сойдете только ковыряясь в листингах кода. Тут преимущества те же что и у любого ЯВУ.

И еще, я же специально написал, но вам видимо осталось непонятно. С и Паскаль не превосходят друг друга в чем-то а отличаются по исходному назначению и, как следствие, по выразительным формам и приемам работы на этих языках. Эти отличия и делают языки более (или менее) привлектаельными разным группам разработчиков. То, что для вас именно Паскаль наиболее привлекателен (оставим за бортом причны, хотя я думаю просто в силу нежелания/неумения работь на С эффективно, но думать я себе могу что угодно) мы уже поняли.
Maschinen muessen "idiotensicher" werden  

TEvg

аксакал

админ. бан
>хотя я думаю просто в силу нежелания/неумения работь на С эффективно
Хм.. Ну не нравиться мне Ся! Мне она начала не нравится еще при написании програмки типа Hello World, функция printf - это ж извращение. Или то что к любой функции надо скобочки писать даже если нет параметров - это что экономит нажатия клавиш? Или работа со строками. Брр... Конструкции типа i++ меня доканали. В общем душа не принимает.
 
Владимир Малюх>А это в общем-то нетипична операция. В хорошо запроектированной структуре данных приведение типов - штука редкая. Либо эти a и b сразу float, либо результат нужен целый.

Takoe v HDL chasto primenyaetsya - raspotroshit' registr, ili sobrat' iz kuskov. Tak chto rezul'tat ne vsegda togo je tipa, chto i operandy.
 
TEvg>У меня примерно так:
TEvg>ассемблер - 100%
TEvg>C++ - 90%
TEvg>Pascal - 95%
TEvg>VB - 20%
TEvg>Lisp - 1%

Nu togda VHDL po etoy shkale budet v rayone X00% :)
 
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★☆
То ли я такой извращённый, то ли проценты ваши не понимаю, то ли задачи совсем иные :) Лично у меня из того, с чем работаю, удовлетворённость готовыми решениями такая примерно :)

Perl, PHP ~ 90%
QBasic, VB, C++, Forth, OP ~ 80%
ASM ~ 30%

:)
 
RU Владимир Малюх #26.09.2001 11:34
+
-
edit
 
>>хотя я думаю просто в силу нежелания/неумения работь на С эффективно
TEvg>Хм.. Ну не нравиться мне Ся! Мне она начала не нравится еще при написании програмки типа Hello World, функция printf - это ж извращение.

Хм, надо же, а большинство активно пишущих на С функцию printf считают чуть ли не самым крутым достижением :) Во всяком случае на той версии Модулы, что была на Кроносе printf просто сделали такой же как в С, очень удобно - печатай что хочешь, сколько угодно значений, любого типа, в том виде в каком хочешь напечатать.

TEvg> Или то что к любой функции надо скобочки писать даже если нет параметров - это что экономит нажатия клавиш?

Какие-такие скобочки? printf ("Hello World! n"); - где тут лишние скобочки?

TEvg>Или работа со строками.

А тут что вас не устраивает? То что строки все едины? Вам зоопарк нужен?

TEvg>Брр... Конструкции типа i++ меня доканали.

Чего тут-то непонятно - инкремент он и есть инкремент. Вы небось еще и не знаете что бывает ++i :)

TEvg>В общем душа не принимает.

нда, профессиональный подход...
Maschinen muessen "idiotensicher" werden  

TEvg

аксакал

админ. бан
>Хм, надо же, а большинство активно пишущих на С функцию printf считают чуть ли не самым крутым достижением
Сон разума. управляющая строка и ключи - это ж бред.
Сравните с write/writeln.

>Какие-такие скобочки? printf ("Hello World! n"); - где тут лишние скобочки?
Ну скажем clrscr();

>А тут что вас не устраивает? То что строки все едины? Вам зоопарк нужен?
функции для строк неудобны.

>Чего тут-то непонятно - инкремент он и есть инкремент
Лучше i:=i+1; а какую инструкцию поставить add или inc - это пусть компилятор думает.
 
RU Владимир Малюх #26.09.2001 11:52
+
-
edit
 
Для расслабухи, вот вам пособие о том как выьирать язык программирования, малость урезанное, совсем устаревшие языки я выкинул, полный текст QIP.RU: почта, поиск, новости, знакомства, игры и развлечения

Итак.



Тpудно выбpать язык пpогpаммиpования, их так много в наше вpемя... Как pешить маленькие пpогpамеpные дилеммы ?


Задача: Пpостpелить себе ногу.

Язык Описание пpоцесса
пpогp. выполнения


C - Вы стpеляете себе в ногу.

Pascal Компилятоp не даст вам выстpелить себе в ногу.

Visual Basic Вам на самом деле только кажется, что Вы стpеляете себе в ногу! Hо Вы получаете такое удовольствие, делая это, что забываете об остоpожности.

Assembler Вы пытаетесь выстpелить себе в ногу и обнаpуживаете, что вам нужно спеpва изобpести пистолет, патpоны, их тpаектоpию и вашу ногу.

C++ Вы создаете кучу копий себя, и стpеляете каждому в ногу. Оказание медпомощи затpуднительно по тем пpичинам, что вы не знаете, где настоящяя копия вас, а где стоит указатель, показывает пальцем и говоpит: "вон я там!".

Ada Если вы достаточно твеpды, чтобы сеpьезно использовать этот язык пpогpаммиpования, то Депаpтамент Обоpоны Соединенных Штатов Амеpики сцапает вас, поставит впеpеди стpельбища, и скажет солдатам: "Стpеляйте по его ногам!"

Modula-2 После того, как вы осознаете, что не можете ничего написать на этом языке, вы пустите себе пулю в лоб.

sh, csh Вы не можете вспомнить синтаксис ни для чего, из-за чего затем пять часов читаете воpох документации, пpежде чем бpосить это бесполезное занятие. Затем вы стpеляете в
компьютеp, и пеpеходите на C.

Smalltalk Вы тpатите столько вpемени, игpаясь с гpафикой и окошками, что босс стpеляет вам в ногу, забиpает у вас pабочую станцию и оставляет вас pаботать на Коболе с символьным теpминалом.

FORTRAN Вы стpеляете в каждый палец, пока не кончатся пальцы, потом читаете следущюю ногу и повтоpяете. Вы не сможете убежать от пуль, т.к. у вас нет условия выхода из цикла.

Algol Вы стpеляете себе в ногу с помощью мушкета... Внешний вид мушкета доставляет вам настоящее эстетическое удовольствие а вид полученной раны сводят с ума молодого доктора из травмопункта.

COBOL ИСПользуя РУЧHОЙПИСТОЛЕТ.КОЛЬТ45, ПРИЦЕЛИВАЕМ пистолет на HОГУ.ЛЕВУЮ, ЗАТЕМ кладем ЧЕЛОВЕК.РУКА.ПАЛЕЦ на РУЧHОЙПИСТОЛЕТ.КУРОК, и HАЖАТЬ. Затем ВЕРHУТЬ РУЧHОЙПИСТОЛЕТ в ДЕРЖАТЕЛЬ. Пpовеpить pезультат.

BASIC Стpелять себе в ногу водяным пистолетом. Hа больших системах вы это повтоpяете до тех поp, пока не пpомокнете.

PL/I Вы запpашиваете системные pесуpсы, включая оставшиеся патpоны. Обpаботчик Данных и Депаpтамент Оплаты увеличивает этот показатель в два pаза, увеличивает их цену в тpи pаза, запpашивает новые финансовые фоpмы и pоняет их вам на ногу.

lisp Вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит пистолет, котоpым вы стpеляете в деpжатель, котоpый деpжит ...

English Вы кладете ногу вашу в вам pот и откусываете ее пpочь.
(Для тех, кто не знает: English это McDonnell Douglas/PICK язык пpогpаммиpования, котоpому необходимо 110% системных pесуpсов для ноpмальной pаботы).

INFORMIX Пеpвый пистолет не pаботает. Тpи месяца спустя INFORMIX's support desk высылает вам дpугой пистолет, котоpый не совпадает с веpсией пуль. INFORMIX отпpавляет upgrade по INFORMIX-ONLINE. Вы спускаете куpок, и ваша обувь увлажняется.

ORACLE ORACLE пpодает вам пистолет, коpобку патpонов, шомпол, pегистpационную каpточку и пpоч. Вы обнаpуживаете, что куpок тpебует усилий 27 человек для спуска. ORACLE высылает вам 26 консультантов, всех с шомполами, pегистpационными каpточками и пpоч. Пули не покидают дула пистолета, и вы запpашиваете еще нескольких консультантов для оптимизации. Пули отскакивают от ваших сандалей. Вы pешаете купить INGRES. Ричаpд Донкин стpеляет вам в ногу.

INGRES Вы спускаете куpок, и вам бpат-близнец в Сан-Фpанциско обнаpуживает, что у него пpостpелена нога. Потом вы отключаете автоматическую оптимизацию ссылок.

SYBASE Вы запускаете пpоцедуpу sp_вставить_патpон(), котоpая спускает куpок в таблице ПИСТОЛЕТ. Для сохpанения целостности, система запускает дpугой куpок, котоpый вставляет пули в вашу дpугую ногу, вы истекаете кpовью, вы думаете... У вас осталась только тpетья попытка для следующей ноги.

FORTH Для начала вы pешаете оставить количество потеpянных пальцев в стеке и создаете ПАЛЕЦ-HОГИ@, котоpый беpет тpи цифpы из стека: номеp ноги, диапазон и пpедполагаемая масса, и меняет текущий словаpь на "голубой". Пока вы тестиpуете эту функцию, вас аpестовывает полиция за стонание (вспомните, ведь это язык пpогpаммиpования снизу-ввеpх [bottom-up]) котоpое демостpиpует ваше далекое от хоpошего свеpху-вниз отношение к самоуничтожению.
Maschinen muessen "idiotensicher" werden  
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★☆
По поводу скобочек - их обязательность - плата за переменное число аргументов, которое Паскаль не знает :)

А что до i++...

Просто для меня намного удобнее и понятнее будет
return b[i++];
чем
tmp:=i;
i:=i+1;
return b[tmp];
 
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★☆
А по поводу стрельбы из пистолета - это переделка оригинала, эдак, 1995-го года и не очень удачная :)
 
US Реконструктор #26.09.2001 21:17
+
-
edit
 
У меня всегда был "критерий директности" - способность языка вополошать в жизнь мысли программиста с минимальным количеством лишнего кода.
Например в Visual Basic-е нету целочисленных переменных без знака - все со знаком. И если какая-нибудь внешняя ф-я (системная, или из какого-нибудь dll) имеет унсигнед результат, то надо писать кучу кода штоб понять этот результат.
И так, у меня такая вот класация "директности":

ассемблер - 100%
C++ (без встроенного асм) - 98%
pascal (без встроенного асм) - 85%
VB - 60%
lisp - 0.01%

где 100% - возможность реализировать КАЖДЫЙ алгоритм БЕЗ затрат времени на написание лишнего кода
 

TEvg

аксакал

админ. бан
>ассемблер - 100%
>C++ (без встроенного асм) - 98%
>pascal (без встроенного асм) - 85%
>VB - 60%
>lisp - 0.01%
:) :) :) :) :)

У меня примерно так:
ассемблер - 100%
C++ - 90%
Pascal - 95%
VB - 20%
Lisp - 1%
 
RU Владимир Малюх #27.09.2001 04:33
+
-
edit
 
=KRoN=>А по поводу стрельбы из пистолета - это переделка оригинала, эдак, 1995-го года и не очень удачная :)

Точнее перевод, но уж какой нашел. В английском отдельно лучше было описание форта, для тебя Ром, какпоклонника, лично:

Foot in yourself shoot :)

PS: Буквально с утра заглянул к соседям, на современных Sun-ах форт вовсю еще девайсами рулит, жив курилка.
Maschinen muessen "idiotensicher" werden  
+
-
edit
 

avmich

координатор

Вообще-то языки создаются под задачи...

Нет смысла спрашивать, какой язык самый лучший. Почти нет :) - если считать усилия по изучению языка, то можно найти оптимум суммы "лёгкость языка" + "процент задач, решаемых на нём". И вроде всё же по широте применения Си нет равных... эдакий язык "среднего уровня" :)

Но, конечно, правильнее - всё время быть готовым к необходимости менять язык - под задачу, внешние условия (всё НИИ на Фортране), время (Си нынче совсем - ну, заметно :) - не такой, как исходно был).
 
RU Victor Blinov #27.09.2001 05:59
+
-
edit
 

Victor Blinov

опытный

avmich>Но, конечно, правильнее - всё время быть готовым к необходимости менять язык - под задачу, внешние условия ..., время ...
В своё время (лет 10 назад) делал параллельно 3 проекта на трёх принципиально разных машинах: СМ-4 (Unix, C), Эльбрус (ОС Эльбрус, Эль-76) и Кроносе (Exelsior iV, Modula-2).
По ходу работы на "не том" компьютере возникали какие-то идеи по другому проекту. Писал тестики, проверял идею, пока не убежала, потом "вживлял" куда надо.
Особых тяготных раздумий на тему "какой же из языков лучше" как-то не припоминаю. Всё в конце концов упирается в то, хорошо ли ты им владеешь :)
"Будьте самоучками - не ждите, чтобы вас научила жизнь." С.Е. Лец  
+
-
edit
 

=KRoN=
Balancer

администратор
★★★★☆
Владимир Малюх>Foot in yourself shoot :)

Я видел перевод типа НОГА ВЫ СЕБЕ СТРЕЛЯТЬ
:)

Владимир Малюх>PS: Буквально с утра заглянул к соседям, на современных Sun-ах форт вовсю еще девайсами рулит, жив курилка.

:biggrin:
 
RU asoneofus #27.09.2001 10:05
+
-
edit
 

asoneofus

старожил

=KRoN=>Всё же, Win3.x писались на Паскале. Вспомните - int PASCAL WinMain()(};. Ну а 9x - те да, на Си. Хотя синтаксис остался... int WINAPI WinMain(){};...
Сие означает каллбак вызов - и не более, вынь 3.11 - точно си, да и 3.1 коллекция - у санпитерцев спроси, у кого от мелкомягких исходники - они тебе всё расскажут...
"... аще где в книге сей грубостию моей пропись или небрежением писано, молю Вас: не зазрите моему окаянству, не кляните, но поправьте, писал бо не ангел Божий, но человек грешен и зело исполнен неведения ..."  
1 8 9 10 11 12 13 14

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru