metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-04-10 02:21 pm

Как Артуро программиста на Кложуре искал

http://artureg.livejournal.com/147047.html
Печаль, печаль, огорчение, готовых программистов на Кложуре за копейки нет, а существующих всему с нуля учить надо или платить как айседу.

[identity profile] blackyblack.livejournal.com 2012-04-10 04:48 pm (UTC)(link)
Всё просто же. А вот хранимку с постгре на оракл перекинуть - офигенное развлечение и секс в гамаке.

[identity profile] craneop.livejournal.com 2012-04-10 04:50 pm (UTC)(link)
Вы бы еще чего вспомнили на ночь глядя. И давно вы с awt сталкивались? Я вот например сейчас копаю сотонинское приложение на swing, так там awt присутствует в виде самых базовых классов типа цвета, шрифта и прочей примитивщины. Короче, с учетом понаписанных сверху библиотек, вполне ок.

[identity profile] craneop.livejournal.com 2012-04-10 04:51 pm (UTC)(link)
Точно так же можно писать и без паттернов и фреймворков. Жаба как язык это запрещает?

[identity profile] blackyblack.livejournal.com 2012-04-10 04:51 pm (UTC)(link)
Да нифига. Просто не повезло в данном конкретном случае или учитель из артурега хреновый. На самом деле прототип или проект рассчитаный на 1-2 человека лучше писать не на мэйнстриме. Можно будет подобрать наилучший инструмент, сократить сроки, заложить расширяемый код на будущее.

[identity profile] craneop.livejournal.com 2012-04-10 04:52 pm (UTC)(link)
Я на жабе уже лет 5 пишу. Все особенности и хуевые места знаю и за счет этого мне уже на них похуй (ну почти похуй). Пионэрам и пишушим хелловорлды действительно тяжко, да.

[identity profile] craneop.livejournal.com 2012-04-10 04:56 pm (UTC)(link)
Я бы различал:

1) Ява-машина;
2) Язык;
3) Библиотеки (платформа).

1 - весьма ок и никаких вопросов; 2 - язык не идеальный, но вместе с этим простой; 3 - тут как повезет. Истинная сила опытного жабиста в том что он в пункте 3 хорошо разбирается, и знает, где говно, а где не говно. Так как кложура ваша эта использует 3 в полную силу, то кложурист в принципе тоже должен в этом зоопарке разбираться. А вообще эти lang-срачи напрягают. Программист будет писать на чем хочешь, а тупые нихуя не напишут, ни на ассемблере, ни на кложури с хаскелем.

[identity profile] craneop.livejournal.com 2012-04-10 04:57 pm (UTC)(link)
Ну и какбэ КО подсказывает что паттерны ни разу не жабисты придумали.

[identity profile] jakobz.livejournal.com 2012-04-10 05:04 pm (UTC)(link)
А на чем-нибудь еще писал хотя-бы пол года? На javascript хотя бы? Ну, чтобы было с чем сравнивать?

[identity profile] craneop.livejournal.com 2012-04-10 05:09 pm (UTC)(link)
Писал. И это дало мне понимание, что от языка зависит меньшая часть успеха. Куда больше зависит от понимания и знания сопутствующей платформы, паттернов (я не GoF имею в виду, а вообще). Когда знаешь, ЧТО и КАК писать, язык уже относительно не важен.

Чуть что кложури и прочую функциональщину не отрицаю и сам присматриваюсь. Но пионеры орущие на всех углах "говно" как-то напрягают.
Edited 2012-04-10 17:09 (UTC)

[identity profile] nicka-startcev.livejournal.com 2012-04-10 05:26 pm (UTC)(link)
я яву последний раз щупал давно, может и свинг вместо авт было, но что-то очень жирное и с странной идеологией, когда на каждый чих создается довольно толстый объект.

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

[identity profile] nicka-startcev.livejournal.com 2012-04-10 05:31 pm (UTC)(link)
1. да. Разве что многовато их развелось разных
2. да. язык чуток излишне громоздок и кошерный аналог make сходу не вспомню. а так - тот же си+, только в профиль.
3. вот большинство из этого я и считаю говном. хотя, до-диез еще большее говно, а питон слишком специфичен.

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

[identity profile] nicka-startcev.livejournal.com 2012-04-10 05:37 pm (UTC)(link)
хехе. В принципе, на старте проекта надо выбирать не язык (или не ТОЛЬКО язык), а смотреть, к какому языку есть готовая инфраструктура типа биндингов, прослоек, обёрток, либов, итп. А иначе будет "пишем на жабе интерпретатор форта, потом на форте пишем эмуляцию винапи, а потом на всём этом пишем расчётную задачу"

[identity profile] nivanych.livejournal.com 2012-04-11 05:12 am (UTC)(link)
> индусы начнут на кложури писать

Тов. thesz сообщает, что у них индусы уже на Haskell пишут ;-)

[identity profile] nivanych.livejournal.com 2012-04-11 05:13 am (UTC)(link)
А математики теоретико-категорщеги!!

[identity profile] nivanych.livejournal.com 2012-04-11 05:16 am (UTC)(link)
Неправда!! Там была пилорама!

[identity profile] nivanych.livejournal.com 2012-04-11 05:17 am (UTC)(link)
Ви хотите сказать, что вас ораклу и прочим поцгресам проще научить, чем кложури? ;-)

[identity profile] nivanych.livejournal.com 2012-04-11 05:19 am (UTC)(link)
Йа бе сказал, что лиспо-подход, даже если и не используется, то должен быть понимаем любым сколько-то образованным программистом.

[identity profile] nivanych.livejournal.com 2012-04-11 05:20 am (UTC)(link)
Время проходит и естественный отбор таких хацкельщиков вымирает.

[identity profile] plumqqz.livejournal.com 2012-04-11 05:59 am (UTC)(link)
Я совсем не это хотел сказать, но таки да, проще :-)

[identity profile] stdray.livejournal.com 2012-04-11 08:32 am (UTC)(link)
Ну и зачем учить? Дать SICP и потребовать через день все упражнения из первой главы, через три - все из второй. С квиксортом проблем быть не должно.

[identity profile] artureg.livejournal.com 2012-04-11 08:34 am (UTC)(link)
главу СИКПа за день я не осиливал прочитать, они очень большие

[identity profile] stdray.livejournal.com 2012-04-11 08:40 am (UTC)(link)
Первая за 5 часов делается. Вторая состоит из "Вам надо применить cons", чуть более чем наполовину. В любом случае, по СИКПу достаточно быстро можно искуству погромамов обучиться.

[identity profile] bydl0coder.livejournal.com 2012-04-11 08:40 am (UTC)(link)
Ключевая фраза "денег нет". Кложа тут не при чем.

[identity profile] bydl0coder.livejournal.com 2012-04-11 08:42 am (UTC)(link)
!!!

По вашему весь этот материал можно усвоить за 5 часов?

[identity profile] artureg.livejournal.com 2012-04-11 08:42 am (UTC)(link)
1. Построение абстракций с помощью процедур . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.1. Элементы программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.1.1. Выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.1.2. Имена и окружение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.1.3. Вычисление комбинаций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.1.4. Составные процедуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.1.5. Подстановочная модель применения процедуры . . . . . . . . . . . . . . . . . . . . 33
1.1.6. Условные выражения и предикаты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.1.7. Пример: вычисление квадратного корня методом Ньютона . . . . . . . . . . 40
1.1.8. Процедуры как абстракции типа «черный ящик» . . . . . . . . . . . . . . . . . . . 43
1.2. Процедуры и порождаемые ими процессы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.2.1. Линейные рекурсия и итерация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.2.2. Древовидная рекурсия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.2.3. Порядки роста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.2.4. Возведение в степень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.2.5. Нахождение наибольшего общего делителя . . . . . . . . . . . . . . . . . . . . . . . . 62
1.2.6. Пример: проверка на простоту . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
1.3. Формулирование абстракций с помощью процедур высших порядков . . . . . . 69
1.3.1. Процедуры в качестве аргументов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.3.2. Построение процедур с помощью lambda . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.3.3. Процедуры как обобщенные методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.3.4. Процедуры как возвращаемые значения . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Page 3 of 4