?

Log in

No account? Create an account
О языках программирования. - Олег Етеревский [entries|archive|friends|userinfo]
Oleg Eterevsky

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

О языках программирования. [5 December 2006|17:03]
Oleg Eterevsky
[Tags|, ]

(Интересно только программистам.)

Нет в жизни совершенства! Задумался я тут на тему, какой бы мне выучить язык программирования. Дело в том, что в то время как питон и перл полностью удовлетворяют меня по части скриптовых, «медленных» языков программирования, мне не известно ни одного «быстрого» языка программирования, который отвечал бы всем моим (как мне кажется, естественным) требованиям.

C — замечатльный язык. К сожалению, слишком низкого уровня: в нём нет встроенной поддержки всех тех удобных структур данных без которых программировать нынче как-то грустно.

C++ — ужасное нагромождение фич, которых недостаёт в C. Явно чувствуется, что язык уже во многом устарел.

Java при идейной правильности обладает пагубной склонностью к многословности. Да и используемые виртуальной машиной десятки мегобайтов памяти кажутся даже по нынешним временам избыточными.

C# очень похож на java и лишь немного облегчает синтаксис (кажется), но во-первых, он гораздо медленнее. (Если уж не заботиться о скорости исполнения, можно и на питоне писать.) Во-вторых, лично меня смущает то, что он разработан Майкрософтом.

Есть ещё новый язык D, по скорости лишь немного уступающий C. И он был бы идеальным выбором, если бы не был пока таким сырым. Gnu-шная версия компилятара сейчас в некотором застое, версии под 64 бита вообще нету. В общем, если работа над ним не заглохнет, через год может быть наилучшим выбором.

LinkReply

Comments:
(Deleted comment)
[User Picture]From: eterevsky
2006-12-05 02:33 pm (UTC)
Не поверишь, я как раз на днях этим занимался. Ты знаешь, как-то оно не убедительно...
(Reply) (Parent) (Thread)
[User Picture]From: solo_oboroten
2006-12-13 06:37 pm (UTC)

О! На ловца -- и зверь бежит ;-)

Можеш подсказать технический момент: какова там идиология раскладки файлов его модулей по дереву?

PS: Я его незнаю вообще, а запакетить пару вещей -- надо...
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-13 06:49 pm (UTC)

Re: О! На ловца -- и зверь бежит ;-)

Кажется, там в /usr(/local)/lib/ocaml кладутся файлы .cmx, .cmo, .cmi, .mli, .o.
(Reply) (Parent) (Thread)
[User Picture]From: solo_oboroten
2006-12-13 07:49 pm (UTC)

Re: О! На ловца -- и зверь бежит ;-)

Кладуться. Только там достаточно развесистое дерево обитает. И по какому признаку эти .cmx, .cmo, .cmi, .mli, .o по ветьвям расклвдываются -- я ещё непонял.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-13 07:52 pm (UTC)

Re: О! На ловца -- и зверь бежит ;-)

А у меня всё подряд лежит. Правда, я никаких дополнительных библиотек к нему не ставил.
(Reply) (Parent) (Thread)
[User Picture]From: nikolenko
2006-12-05 02:36 pm (UTC)
Ну, что поделаешь. Нет совершенства, нет. :)
Оно и хорошо — есть простор для улучшения.
(Reply) (Thread)
[User Picture]From: eterevsky
2006-12-05 02:40 pm (UTC)
Ты предлагаешь заняться? :-)

А я ещё в форматах представления текстовых данных совершенства не вижу. Языки, основанные на XML сильно избыточны, а TeX технологически устарел.
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-05 09:37 pm (UTC)
фортран, только фортран. И сишарп он обгоняет. И даже плюсы он обгоняет
(Reply) (Thread)
[User Picture]From: nyaf
2006-12-06 04:06 am (UTC)
Ну тогда уж асм, если сравнивать по обгонябильности ;) .
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-06 12:54 pm (UTC)
Ну, язык должен быть переносим, а асм — нет. Ближайший к асму переносимый язык — C. :)
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-06 10:09 am (UTC)
И чем фортран лучше C?
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-06 10:14 am (UTC)
да вроде как быстрее. но гуй на нем писать нельзя.

Лучше - хуже - не мои критерии оценки. я вообще только паскаль люблю, потому что он понятный.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-06 11:07 am (UTC)
На счёт быстрее — только в весьма специальных задачах. А вообще он слишком стар и basic-like, чтобы на нём писать что-то серьёзное.
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-06 12:00 pm (UTC)
опять ты споришь о вкусах =)
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-06 12:52 pm (UTC)
Я всегда о них спорю. :)
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-06 12:01 pm (UTC)
у меня как раз такие задачи
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-06 12:53 pm (UTC)
Тогда — конечно. Можно и Maple в языки программирования записать. Он для некоторых задач очень даже подходит. =)
(Reply) (Parent) (Thread)
[User Picture]From: netch
2006-12-19 07:00 am (UTC)
И гуй занефиг пишется. Вообще, Fortran-95 (более ранние ещё не то) доведен до состояния неплохого объектного языка, только с немного непривычным синтаксисом. Только непонятно, кому это нужно.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-19 09:01 am (UTC)
Ну, в Майкрософте и на Бейсике гуй пишут. :)
(Reply) (Parent) (Thread)
[User Picture]From: netch
2006-12-19 09:28 am (UTC)
Я не понимаю этого "и". Бейсик в современном (микрософтовском) варианте - великолепный скриптовый язык общего назначения. Он, конечно, отстаёт от майнстрима своей области - например, в нём слабоваты классы, почти нет функциональных средств вроде питоновских map/filter/reduce - но с поправкой на это и некоторые мелкие тараканы синтаксиса он ничем не хуже аналогов. Да и добавить их не так сложно.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2006-12-19 12:40 pm (UTC)
Я не изучал «современного» варианта бейсика и вряд ли когда-нибудь буду, так что конкретных примеров привести не могу.

Тем не менее, есть следующие соображения: как уже было отмечено, если сравнивать бейсик с современными скриптовыми языками, он однозначно им проигрывает. Питону -- по чистоте кода и логичности, перлу -- по мощности и лаконичности. С java и c++ его тем более не сравнить. Встаёт вопрос: ну и нафиг он такой нужен?
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-19 10:25 am (UTC)
ну, вы наверно программист! =))
(Reply) (Parent) (Thread)
[User Picture]From: netch
2006-12-19 10:35 am (UTC)
Я больше того скажу - программист, у которого первым языком был Фортран.
Потому я до сих пор умиляюсь при виде жутких конструкций вроде арифметического IF или назначенного GOTO:)
(Reply) (Parent) (Thread)
[User Picture]From: ontumuct
2006-12-19 10:51 am (UTC)
:worship:

Я сам изучал фортран полгода в университете и практически его не применял. На старших курсах нам рассказывали дельфи. В школе - вобобще не было информатики, но я тогда решал олимпиадные задачи на паскале. То есть я вообще не умею программировать.

При таокм раскладе мне было легче прописать гуй на сиплюплюс, а на фортране - математическую dll.

А можно тогда вопрос как специалисту?

я не дождусь разрешения и спрошу прямо здесь:

Боольшая необходимость сделать прогрессбар в цикле и счетчик времени. Хелп по этому поводу мне не помогает =((

где бы какой-нибудь семпл код посмотреть?
(Reply) (Parent) (Thread)
[User Picture]From: george_u
2006-12-07 08:26 pm (UTC)
C# очень похож на java и лишь немного облегчает синтаксис (кажется), но во-первых, он гораздо медленнее. (Если уж не заботиться о скорости исполнения, можно и на питоне писать.) Во-вторых, лично меня смущает то, что он разработан Майкрософтом.

Какие-то странные вещи пишешь :-)

С# похож на Java примерно так же, как на С++. В С# другая концепция виртуальных методов, есть делегаты, в том числе анонимные, using, перегрузка операторов, свойства. В целом, он богаче. Он более строго сделан, там гораздо меньше deprecated API. И так далее.

Честно говоря, для меня новость, что шарп медленнее, чем Java. Откуда такая информация? По-моему, всё обстоит с точностью до наоборот.

А что касается "разработан Майкрософтом"... Если речь о языке, то это-то здесь при чём? Никто не мешает написать свою реализацию, которая будет выполняться сановской Java-машиной. Более того, я готов поспорить, что такие попытки делались. Ещё можно написать свою виртуальную машину :) Ещё есть mono...
(Reply) (Thread)
[User Picture]From: eterevsky
2006-12-07 09:53 pm (UTC)
C C# из этих языков я знаком хуже всего, так что всё может быть.

Сравнение скоростей я смотрел вот тут: http://shootout.alioth.debian.org/. Там, конечно, речь идёт о mono, но виндовая реализация меня в общем слабо интересует.

А на счёт Майкрософта — ну не могу я доверять в смысле языков программирования компании, которая уже столько лет продвигает Visual Basic. :)
(Reply) (Parent) (Thread)
[User Picture]From: george_u
2006-12-08 04:28 pm (UTC)
Сравнивать коммерческую Java с некоммерческим mono - немного некорректно.

А на счёт Майкрософта — ну не могу я доверять в смысле языков программирования компании, которая уже столько лет продвигает Visual Basic. :)

Не, ну если так рассуждать, то можно получить совершенно замечательные умозаключения, ты ведь понимаешь...
(Reply) (Parent) (Thread)