Ответ отсюда:
Система Образования
Так... Стоило чуть отвлечься, как тут тако-о-ое...
Ну и чёрт с ним, с оффтопиком, политика есть политика!
(Сравнение языков программирования, компьютеров, ОС и железа - чистейшая политика, IMHO!)
Zeus>>Еще как зависит! Все это языки для машины Тьюринга...animus ulterius>Я предупреждаю, я далеко не спец по Java, но разве её программы не выполняются на виртуальной Java-машине, которая и концентрирует в себе все платформо-зависимые аспекты?
Не нужно быть спецом по Java, достаточно иметь минимальные теоретические представления об архитектуре компьютеров. Правда, кроме машины Тьюринга я сам слышал только про машину Поста и квантовые компьютеры. Но вот Java под них нет
Artiom>2 KRON=KRoN=>К вышеперечисленному следует добавить мои Forth, Perl, PHP, Fortran и ещё пяток менее известных языков, на которых мне приходилось писать какие-либо более-менее серъёзные проекты и ещё с десяток, на которых приходилось писать простенькие программы Artiom>Я тут вспомнил эти резюме, которые в кол-ве немалом к нам сыпались - они изобиловали подобными перечислениями. Будто количество - суть качество. Фигня...
Артём, я же подчеркнул про
более-менее серьёзные проекты. Скажем, на Forth'е писался софт для управления системой спутниковой связи, на Fortran'e было посчитано пара химических производств, на C++ и VB написано столько, что мне проекты перечислять просто лениво, а на Perl и PHP сейчас работает вся Авиабаза и этот форум в частности (хотя его, как раз я не писал, а только до/переписывал
)
Так что не надо...
Artiom>Если говорить о таких языках, как Паскаль и С++, то послений позволяет организовывать чуть более изобразительную модель классов, т.е. на нем это красивее делается, он заточен под подобные описания.
Ха! Да ВСЕ универсальные языки способны НА ВСЁ.
Я тебе на QuickBasic решу любую задачу, которую ты решишь на ObjectPascal. Другое дело - в эффективности. В т.ч. и эффективность написания, и эффективность отладки, и эффективность чтения. Ну и интуитивность...
Я не буду в 1001-й раз показывать, насколько нагляднее и короче те же примеры выглядят на C++, по сравнению с OP, но одну табуретку кину... Сколько там типов строк в Delphi? И объясни просто и доходчиво новичку зачем их столько?
Artiom>Давайте же взгянем на существующие среды разработки. Например от MS визуальной студии блевать тошно-c - более кривой IDE и тупого хелпа я никогда не видел.
Ой-ё-о...
Ты себя считаешь профессионалом???
Так какого ты тогда сравниваешь IDE, а не языки??
Во-первых, есть C++Builder - тот же IDE, что у Delphi, только под C++
Во-вторых, как раз MSVC++ заточен под профессионалов, которым приходится больше возиться с кодом, чем с расставлением кнопочек.
В-третьих, хелп тошный? Гм. Это реляционная база данных с языком запросов тебе тошна? Ты вообще, представляешь, как можно рыться в 5Гб хелпов (последний MSDN) без этого? Хех... Вот хелпы Борладна меня просто убивают своей убогостью
Artiom>В сравнении с устойчивой и непротиворечивой Delphi (т.е. Borland C Builder)- это детский сад.
Так мы уже спорим о C++ против Pascal или от MS против Borland?
Или спорим просто, чтоб языком почесать?
Artiom>Конечно, своей задаче - свои средства разработки. Для создания прикладных ИС с использованием БД УДОБНО пользоваться именно Delphi (или C Builder).
Я бы предпочёл PHP или Perl/BDI на MySQL.
Delphi хороша только для локальных БД, а когда дело доходит до межсетевых взаимодействий... Насмотрелся я на эти убожества... Да и та же 1С Бухгалтерия, кто знает - поймёт
Artiom>Да и большинство других аналогичных тасков можно делать на Delphi и получать хорошие результаты. Из всего этого можно заключить, что по крайней мере для решения повседневных задач Object Pascal эквивалентен C++.
Все задачи можно делать на любом языке.
Artiom>Итак, Паскаль и С++ - языки ОДНОГО УРОВНЯ, поскольку на них можно делать одинаковые вещи. Даже развивались эти языки одинаково: процедурность -> модульность (у ТурбоПаскаля это более выражено) -> объектно-ориентированность.
Вот только разными путями
Artiom>Ну вы, батенька, загнули. Я расскажу вам историю. Есть такая фирма "Кворум" и одноименная АБС. Они входят в тройку самых "крутых" контор по автоматизации банков.
Ой, только не надо про "крутые банки" и т.п. По-моему, "программистов" в таких системах вообще до компьютеров иной раз допускать нельзя. Я только что упоминал знаменитую "1С Бухгалтерию". Это ж надо так криво совт-то писать??? Они ж до сих пор используют
файловый доступ к сетевой базе Это ж надо до такого додуматься! Сколько раз на моей памяти рушились базы от глюков в сети в моменты транзакций. А уж перезапуск сервера с запущенной 1С - это вообще песня
Artiom>В основе системы были Btrieve + заточенный TurboVision.
Надо же... Где-то ещё про битрайв помнят... Бывает...
Artiom>Благодаря этой многослойности и супер-гибкости, система могла кастомизироваться под конкретный банк. Скорость реакции (внесения изменения) на заявки банков могла достигать 1 недели!
Гм. Ну, это как раз не рекордный показатель
Между прочим, зуб даю, на том же Форте реакция скорее всего занимала бы часы... Правда, на создание проблемно-ориентрованного языка времени ушло бы, наверное, побольше, чем на написание у вас этой программы. Ну да это всегда так - или боьшие затраты на написании, но потом малые на поддержке, или наоборот.
Artiom>В свете вишесказанного, заявление KRON'a о существовании якобы более "продуктивных и/или логичных" языков смлтрится более чем странно и как раз-то и напоминает восклицания, типа "Windows must die"
Гм. Ну да. Если рассматривать с точки зрения того, что можно сделать, то все универсальные языки примерно эквивалентны. На то они и универсальные. Но, почти по Оруэллу - все языки эквивалентны, но некоторые более эквивалентны, чем другие. Эффективность разных
универсальных языков под разными задачами разная. И вот тут я не вижу достойного места для ObjectPascal/Delphi. Только в тех случаях, когда человек просто знает Delphi лучше C++ и ему лень переучиваться. Хотя, по-настоящему ленивые, как раз будут писать именно на C++. Ну повешусь я, если буду писать вещи типа
LocalFileCounter = LocalFileCounter + 1;
Работа программиста превращается в работу машинистки...
MiG31>В начальном стадии, Тип 1 ограничивает свою деятелность леплениям кнопок по "форме" Делфи и writeln("hello, world!");
LOL!
Вспоминаю одного такого, который начал учиться программированию.
- Знаешь, я тут калькулятор написал на Delphi. Только он не работает. Ты мне не поможешь его дописать, чтобы заработало?
Приходим к нему, у него на Delphi набит ОБАЛДЕННЫЙ каклькулятор. Кнопочки там цветные, шрифты разные, в общем крутая инженерная модель. Как на картинке. Лезу смотреть код. Ничего не понимаю. КОДА НЕТ. ВООБЩЕ. Человек налепил кнопочек и думал, что оно заработает... В общем, потом была пятиминутная лекция на тему стековых регистров, обратной польской записи и т.п. мелочей, без которых нормальный каклькулятор не слепить. Товарищ весьма огорчился и затея калькулятора быстро куда-то уплыла.
Кстати, сейчас он пишет софт для работы с БД под тем же Delphi. Файловый доступ, необходимость установки Delphi на каждый комп, где работает его программа, постоянные падения и все прочие радости продукта программиста 1-го типа по классификации МиГ'а-31.
MiG31>В более продвинутом стадии наблюдаются более сложные алгоритмы, написанные в духе "спагетти кода".
Ох, спагетти...
Вы бы видели код этой доски объявлений (UBB) - руки за такое отрывать!
Мало того, что хрен разберёшься, так ещё по три-четыре повторения идентичных кусков программы в разных модулях, ужасная неэффективность (вообще, так обычно пишут Delphi-программисты на C++, как тут C++ программисты на Perl - лень выучить дополнительные возможности со всеми вытекающими...)
MiG31>Тип 2: Математик. Он бог дифферинциальных уравнений.
Видел только одного такого.
К счастью, он стал заниматься научной деятельностью, а не программированием
MiG31>Тип 3: Алгоритмик. Очень продвинутый математик или начинающий ламер. Он понял, что дифф. уравнениями хорошую программу не напишеш. Он разобрался в булевой алгебре, понимает дискретную математику.
А вот с этого я и начинал
MiG31>Тип 4. Проффесионал.
[...]
MiG31>Пишет только на C++, пользует VB (и другие) для проверки своих новых COM контейнеров.
МиГ, ты бы уж тут смайликов бы понаставил
Ведь профессионалу всё равно на чём писать...
Да и кроме Win32 есть другие системы
Кстати, ты ещё один тип "программиста" забыл - cO0l H4ckEr
MiG-31>>ОС, под которую он пишет, для него абслолютно прозрачна. Artiom>Да уж, это что прозрачно-то, ась? Уж не Виндоза ли?
А что, для программирования, скажем, микрокотроллеров уже не требуется прозрачность ОС?
Хотя с этим требованием я не совсем чтобы согласен. Это требование программиста-профессионала-системщика, а не программиста-профессионала вообще.
Artiom>Не смешите меня, а то у меня губы потрескаются Я бы еще понял, если бы ты о прозрачности Юникса говорил или любой другой OpenSource ОС.
Это говорит лишь о том, что ты с OpenSource системами не сталкивался
Знание исходников того же Linux очень мало тебе даст с точки зрения прозрачности. И, между прочим, не стоит путать OpenSource и Unix - большинство Unix-систем с закрытым кодом...
MiG-31>>COM для него мания. Artiom>COM - это технология, как, например, техология забивания гвоздей.
Ну что делать, помешан МиГ на COM'е
Но ты лучше не на это отвечай тогда, а на то, что он перед этим по делу говорил... Что-то ты как-то это пропускаешь...
Artiom>И иметь дело, например, с биологом, написавшим на паскале/Делфи обрубок кривого но работеющего кода всё же интереснее, чем с таким вот "светочем".
Гм. Опять-таки, мы языки сравниваем, или приятность общения с программистом?
Artiom>Вывод - важны не средства, но результаты.
Да никто с этим не спорит!
Если ты хорошо знаешь Delphi и плохо - C++ - да ради бога, пиши на Delphi! Но не надо говорить, что они равны, или тем паче, что C++ хуже!
Если ты равно хорошо знаешь и то и другое, и у тебя равные инструменты и под то и другое, то для меня очевидно, что профессионал в данной дилеме выберет C++.
Artiom>И здесь уместно повториться - я видел много работающих СЛОЖНЫХ систем, писанных на Делфи.
Ты не поверишь, но я видел много
СЛОЖНЫХ систем, написанных на QuickBasic! И достаточно эффективных систем! Но я не стану утверждать, что QB лучше OP
Artiom>И также видел море растопыренных пальцев Сишников,
А ещё я видел море распальцованных дельфишников, которые не зная C++ кричат, что C++ mustdie, т.к. они на Delphi всё это сделают быстрее и лучше.
Между прочим, правы.
Они на дельфи сделают быстрее и лучше.
Но это проблемы не языков, а программистов.
Artiom>которые представления не имеют, например, о способе расчета метрик ПО, или о методологии функциональных точек,
Я, кстати, не знаю ни того ни другого.
Правда, не стану тут распальцовываться вещами, которых почти наверняка не знаешь ты
Artiom>и уж тем более не въезжают, когда просишь - покажи свои проги, которые бы РАБОТАЛИ и ИСПОЛЬЗУЮТСЯ людьми.
Но, чёрт возьми, при чём тут C++ vs Delphi???
MiG-31>>Общается только с себеподобными проффесионаломи, к остольным относится с презрением. Artiom>Обычные шоры в голове и случай развитого эгоизма. "Будете проходить мимо - пните" его, он заслужил. ((с) Р.Шекли, 1995, "Конечная")
А что, эгоизм вдруг стал помехой на пути программирования?
В общем, всё не касательное непосредственно языков, придётся пропустить... Любишь ты, Артём, воду лить...
Artiom>p.s. кто-нибудь видит пути, как можно свести эту тему обратно к образованию?
А зачем?
fast>Вовращаясь к топику. Правильный программер тот , кто учился в ВУЗе по такой программе :
Ох, fast... Знаешь, моя практика (и весьма обширная!) показывает, что академическое образование профессионалу помогает. Но вот профессионала не делает. Т.е. профессионал без академического образования, совершенно не факт, что уступает обладающему оным. А вот человека неспособного стать профессиональным программистом, никакое академическое образование не спасёт.
fast>1. Конструирование ЭВМ.fast>2. написание ОСfast>3. Написание системных средств, компиляторов.fast>4. Создание программных комплексов.
Хотя согласен, это всё нужно для профессионала.
Беда в том (возвращаемся к образованию), что зачастую, когда это преподают, то не дают понятия зачем это нужно...
fast>высокую зарплату, отсутствие проблем с работой гарантирую
Чтобы иметь высокую зарплату программиста, совсем не обязательно быть профессионалом
Более того, мало весьма это связано
fast>>ТЗ программер не имеет право ставитьArtiom>MSF вспомнил? В принципе согласен, но мне кажется, что программер должен уметь это делать.
Это тебе кажется
А весь мировой опыт показывает, что если программисту не дать готовое чётко сформулированное ТЗ - то будет "как всегда"...
Мышление программиста и мышление ТЗ-менеджера - весьма различны.
Artiom>Если, к примеру, программист захотел создать достоточно большую программу, которая приближается к программному продукту или даже программному комплекс...
А если программист делает большой комплекс, то тут ТЗ-менеджер просто ОБЯЗАН быть. Как и ещё куча другого народа. В т.ч. программистов. Нельзя такие вещи делать одному человеку. Просто НЕЛЬЗЯ. Хотя бы потому, что он может однажды уйти из этой фирмы...
Artiom>Это верно. Поэтому интерес представляет симбиоз - биолог + программер, разбирающийся в том, что говорит биолог Обрати внимание - продакт-менеджерами здесь не пахнет.
Если и биолог и программист люди профессиональные, то у них будет достаточно мало возможностей для взаимодействия по сути вопроса, это раз. А два - так можно рассуждать только на уровне примитивных проектов, типа "ты мне программку, которая рассчитывает скорость роста сепулек в процессе сепуления, а я тебе за это 50 буказоидов или 10 литров камры". Как только появляется хоть что-то сложнее, возникает тысяча организационных вопросов, решая которые, программист будет терять куда больше, чем получать.
Artiom>Ну вообще C++ более правильный язык, чего уж здесь говорить. Особенно с тех пор, как стал ANSI стандартом...
На счёт того, что правильный - согласен, а вот на счёт "с тех пор, как стал ANSI"... Гм. Скажем, Ада - правильный язык? А где его ANSI-стандарт? А Forth? Его ANSI-стандарты выходят иногда каждый год (93-й и 94-й, к примеру), а много людей тут знает о нём?
fast>>2. написание ОСArtiom>Вот это да! Такого не было. Я даже не представляю что это должен быть за курс такой. Наверное года на 2, не меньше.
Гм. Неужели конструировать процессоры проще, чем писать ОС?????
fast>>3. Написание системных средств, компиляторов.Artiom>Было: граматики, схемы управляемого перевода, простейшие компиляторы.
Вот золотое место для Forth'а! ;D
fast>>4. Создание программных комплексов.Artiom>Круто, особенно если учесть (по Г.Майерсу), что это наиболее сложный класс систем. И как же вы предлагаете это делать?
Я так понимаю, что это просто изучение системы чёрных ящиков и методология тестирования и отладки оных. Кстати, то, на что сейчас уходит процентов 90 ресурсов фирмы, где я работаю
Уж больно комплекс у них глобальный...
fast>>Освоение языками : ASM, C/C++, Fortran, Perl, Lisp, JavaArtiom>Предварительно не забыв изучить комбинаторную алгебру, и, заодно, лямбда-исчисление. Иначе я буду дико смеяться над Lisp-программером.
Ну, Лямбда - это не только Lisp. Это вообще могут быть функциональные языки типа Hope. Да и тот же Forth c какой-то точки зрения...
А вообще, естественно... Lisp без Lambda...
Artiom>До кучи: Prolog, GPSS, Simula.
Ну, Пролог скорее как забавный пример
А Simula... Я бы предложил всё же Smalltalk или ObjectiveC
А вот GPSS я даже не слышал
fast>>Освоение технологиями COM/DCOM, ActiveX, CORBA, MIDASArtiom>Ага, точно! Программеру, специализирующемуся на создании микрокода для маломощных risc-процессоров сотовых телефонов и/или реализующему криптографические протоколы вышеперечисленное (особенно CORBA и MIDAS) просто жизненно необходимо.
Ага. Так же, как Пролог
fast>>Работа с DB : Oracle, MS SQL, DB2, SybaseArtiom>Чего всё в кучу валить-то?! На кой хрен конкретные СУБД нужны, скажем, системщику?
Ну, тут согласен
Теория БД весьма полезна, а вот конкретные реализации - только тому, кто с ними будет работать.
fast>>высокую зарплату, отсутствие проблем с работой гарантируюArtiom>Вы меня разочаровываете, - разве это главное?
Zeus>Вот блин, я сделал все, чтобы не допустить здесь очередной перепалки о языках программирования... В итоге - все как обычно. Завязывайте, конечный результат таких разговоров и так ясен.
Да ладно, интересно же!
Впрочем, пожалуй, стоит вынести в отдельный топик - в Компьютерном
fast>стройности мысли - формализм нужен. Не факт что в правильно MatLab) инженерных техник у него хрен чего получиться и своей
LOL! LOL! LOL! LOL!
[img]biggrin.gif[/img]
[img]biggrin.gif[/img]
Замечательно построенная фраза с неимоверной стройностью мысли!
Или это на каком-то языке?
Я FORTH ДУМАТЬ_НА МОЖНО?
(кстати, синтаксически и программно верное Forth-выражение
fast>А вот это не важно. Программист, он как проститука обязан писать на том языке, котором скажут и делать, то что прикажут.
Гм. Вот это сложный вопрос.
С какого-то уровня программист приказывает, на каком языке и с какой идеологией писать софт
Но - только с какого-то...
Буквально вчера я с шефом нашего отдела имел подобную беседу. Я - Вот Forth для наших задач был бы замечательным решением. Но, увы, всё уже пишется на C++, да и программистов, грамотно думающих на Форте у нас нет. Он - Ну, с выбором языка - это не проблема, новый проект на чём угодно можно делать начать, а вот на счёт программистов - это да, увы
fast>Хотя жизнь обычно показывает, что С++ чаще всего выигрывае.fast>Но это бывает часто оспоримо в конкретных задачах
Конечно
Работать с ассоциативными массивами и текстовыми файлами произвольного формата я предпочту на Perl, а писать удалённую работу с БД - на PHP+MySQL+HTML
Или, нравится мне, что элементы матрицы Якоби в Фортране вычисляются одним вызовом...
Ну я для прикладной задачи "с нуля" - тут я буду выбирать между Forth и C++
fast>Сказали ракеты запускать - будем запускать, сказали землю копать - будем копать, как те ребята из >лаборатории fast>Конечно нет. На первом месте Бог, на втором семья, на третьем церковь, на четвертом работа.
LOL