Размышления о программизме
Apr. 6th, 2007 03:46 pm
Сейчас буду сильно неоригинален и скажу: никак не могу решить, какой язык программирования изучить. Потому что ведь надо же вроде какой-то изучить. По работе больше всего нужен Python. Уделил ему час - всё понятно, чего там изучать неизвестно. Отступления вместо скобок раздражают.
Посмотрел Ruby, какой-то сильно популярный язык в последнее время. Изучать его я бы стал только по одной причине - уж больно хорош у них tutorial. Но кроме этого, чем он отличается от Пайтона тоже не совсем ясно.
Причём поклонники каждого из языков говорят, что в этом языке, наконец, удалось воплотить самый ясный синтаксис без излишеств и программы читаются как романы какие-то просто.
А я вот думаю, что всё это примеры "умножения сущностей без необходимости". Поэтому всё это изучать совершенно не хочется.
И, кстати, нашёлся всё-таки язык, который мне очень понравился и который как-то совсем мало кем замечен - Erlang. Я думаю, многих пугает тот факт, что его придумал Ericsson для каких-то телефонных систем. Но вот, однако же, и Forth тоже придумали для управления телескопами, и ничего.
В общем, я почитал немного книжку про Erlang и тут же захотелось на нём программировать. Потому что это просто какой-то параллельный и распределённый Пролог, а это, я вам скажу, уже кое-что!
В общем, если кто-то в таких же сомнениях, то очень рекомендую Erlang.
no subject
Date: 2007-04-06 07:17 am (UTC)no subject
Date: 2007-04-06 07:26 am (UTC)Так что Джава - это вообще ошибка. Зато ошибка очень полезная! И я, честно говоря, не понимаю, зачем нужен Python, Ruby, C# & Co., если есть Java.
no subject
Date: 2007-04-06 08:45 am (UTC)А так, конечно, согласен :-)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2007-04-06 07:43 am (UTC)ещё нынче модная конкуренция аяксу это флекс - можно комбинировать и с аяксом и жабой и всем подряд
no subject
Date: 2007-04-06 07:52 am (UTC)ЖуДко популярный, но скуШно учить.
(no subject)
From:(no subject)
From:no subject
Date: 2007-04-06 09:05 am (UTC)Если для интереса, то лучше посмотреть Mozart/Oz. Он более строен, чем Erlang. Но поддерживается значительно слабее.
no subject
Date: 2007-04-06 09:15 am (UTC)При всём при том, у меня есть ощущение, что Оз всё же никогда не будет популярным.
no subject
Date: 2007-04-06 09:15 am (UTC)no subject
Date: 2007-04-06 09:16 am (UTC)А нельзя ли просветить в двух словах насчёт различия, или я совсем безнадёжен ?
no subject
Date: 2007-04-06 09:23 am (UTC)Есть ещё какие-то мудрые мысли ?
(no subject)
From:(no subject)
From:no subject
Date: 2007-04-06 10:14 am (UTC)no subject
Date: 2007-04-06 10:45 am (UTC)no subject
Date: 2007-04-06 10:59 am (UTC)no subject
Date: 2007-04-06 12:09 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2007-04-06 03:26 pm (UTC)The processes communicate via a share-nothing asynchronous message-passing system: every process has a "mailbox", a queue of messages sent by other processes, that are not yet consumed.
Это ж твой InfoBus, почти. А Пролог там, конечно, не при чем, за исключением patterns, но это во всех функц. языках есть.
Haskell хорош, но после ML и Lisp это не такое уж revelation, хотя он конечно получше ML будет.
Я, кстати, не знаю, как можно учить язык, если тебе на нем ничего писать не надо.
no subject
Date: 2007-04-06 04:51 pm (UTC)Так это и есть правильная concurrency model. Я работать начинал с интелевской системой RMX. Там так и было -- task'и (типа, threads) с своими mailbox'ами (те были разные: обычные, с приоритетами и т.д.). И язык был свой PL/M.
Вообще, если порыться, языков таких с встроенным asynchronous message-passing должно быть полно. Только они все наверное либо domain-specific (типа только для телефонов), либо как PL/M под одну конкретную операционную среду заточены.
(no subject)
From:(no subject)
From:no subject
Date: 2007-04-07 02:20 am (UTC)Во-вторых, очень мне нравится как там процессы друг в друга атомами и tuples бросаются. Ужасно красиво, по-моему. Я вообще атомы люблю.
А насчёт Пролога - не скажи. Посмотри 3-ю главу, работу со списками. Это же просто чистый Пролог, даже без примесей. Конечно, насчёт бэктрекинга не знаю, надо почитать, но выглядит это одинаково. А главное - первый интерпретатор Эрланга был написан на Прологе! О чём-то это всё-таки говорит.
(no subject)
From:(no subject)
From:no subject
Date: 2007-04-06 05:27 pm (UTC)no subject
Date: 2007-04-06 08:21 pm (UTC)Именно!
no subject
Date: 2007-04-07 05:49 am (UTC)(no subject)
From:no subject
Date: 2007-04-07 02:31 pm (UTC)J - http://www.jsoftware.com
K и Q - http://kx.com (там нужно просить лицензию, а так K можно взять здесь http://www.cs.trinity.edu/ftp/pub/winxp-software/K/ )
Scala - http://www.scala-lang.org/
Smalltalk - http://www.smalltalk.org/ http://www.smalltalk.ru/
Groovy - http://groovy.codehaus.org/
no subject
Date: 2007-04-07 11:40 pm (UTC)Smalltalk - ясное дело:)
Остальные посмотрю, спасибо.
no subject
Date: 2007-04-11 01:35 am (UTC)Грубое сравнение - допустим, я умею считать до ста по-русски, по-испански и по-английски.
Можно, конечно, задаться вопросом "а на каком бы еще языке научиться считать до ста"? А можно начать изучать алгебру, дифференциальное исчисление, интегралы и тензоры.
no subject
Date: 2007-04-11 01:37 am (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2007-04-11 01:41 am (UTC)Так вот, аналогом диф. ичсисления и проч. в программирования являются
- frameworks: .ASP.NET, EJB, COM+, Windows Forms, и т.п.
- технологии: SSL, OpenGL, ADO, ODBC, ...
- инструменты: source control, bug tracking, ...
- методологии: правила дизайна, разработки и управления большими программами, и т.п.
- теория программирования: разнообразный computer science
Как видишь, язык - это только малая толика.