beldmit: (Default)
[personal profile] beldmit
Собственно, возвращаясь к посту про настоящего программиста. Там в комментах [livejournal.com profile] cmike высказал мнение, что Java - это такой нишевый язык.

Я задумался, и понял, что ниши для Java я не представляю. Возможно, сейчас не представляю - потому что уже есть C#.

Посему вопрос: какие задачи могут быть удачнее, чем на каком-либо другом языке, решены на чем-нибудь из списка: Java, Smalltalk, Haskell, Erlang? Меня устроит, если будет какой-то другой язык близкого класса, который это позволит сделать (кроме Java - там я хотел бы видеть четкие преимущества).

Желательно - чтобы с этими задачами было реально столкнуться на не сильно извилистом пути программиста (то есть если, чтобы к такой задаче подступиться, надо 15 лет учиться на микроэлектроника, то пример не канает).

Date: 2008-12-15 12:41 pm (UTC)
From: [identity profile] behrk.livejournal.com
Отвечу за Smalltalk.

Для меня Smalltalk -- это прежде всего язык экспериментальной разработки, exploratory programming. Т.е. я люблю решать на нём задачи вида "сделай то, не знаю, что".

Пример: вот хочу сделать необычную визуализацию для данных, лежащих в файле не вполне известного мне формата. Допустим, я знаю структуры, в которых лежат данные в файле, но не вполне понимаю семантику полей этих структур в пограничных случаях. И вот, я описываю эти структуры и пишу однострочник, который считывает содержимое файла. Дальше некоторое время лазаю по нему инспектором, иногда делая выборки, свертки и проч.

Потом я пишу опять-таки однострочник, который прямо на графическом контексте текущего окна рисует какие-то графики. Экспериментирую, подбираю, развлекаюсь. И когда, наконец, результат начинает меня удовлетворять, завожу класс и сваливаю мои однострочники в его методы.

Другой пример -- создать COM-объект и начать дергать его за разные методы, чтобы понять, как он себя ведет. Естественно, в процессе всё часто рушится или приходит в неправильное состояние, но при соблюдении минимальной аккуратности у меня всегда имеется на руках код, выполнив который после перезапуска я воспроизведу то состояние, с которым работаю.

Date: 2008-12-15 12:54 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Хорошо. То есть ниша Quick-and-Dirty языка? Или что?

Date: 2008-12-15 01:13 pm (UTC)
From: [identity profile] behrk.livejournal.com
Я бы не сказал, что dirty. Потому что потом я результаты экспериментов отрефакторю и что-нибудь на их основе построю. Предпочитаю формулировку "исследовательское программирование".

Date: 2008-12-15 01:15 pm (UTC)
From: [identity profile] beldmit.livejournal.com
Погоди. Исследование кончилось, у тебя есть код, причесанный и пригодный к дальнейшим операциям. Что дальше?
From: [identity profile] behrk.livejournal.com
Может, попробовать зайти вообще с другой стороны. Смолток обычно используется во внутренней разработке -- на нем редко делают коробочные продукты. Типичная система на Смолтоке является частью чего-то большего, как, например, система управления производством, бухгалтерская система, ПО авиационного тренажера. И обычно такая система состоит из двух частей: собственно, программного кода и команды программистов, с помощью которых эта база кода приспосабливается к меняющейся окружающей среде.
From: [identity profile] beldmit.livejournal.com
Так эрланг тоже не коробочный.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 10th, 2026 05:11 pm
Powered by Dreamwidth Studios