juan_gandhi: (Default)
[personal profile] juan_gandhi
Я не буду распространяться на тему как язык формирует мышление; я о другом, о языках программирования. Вот есть два языка, джаваскрипт и джава. Люди, которые их путают - самые счастливые, наверное; те же, кто не путает, считает их за идиотов. Счастливых идиотов. Джавщики смотрят на джаваскрипт сверху вниз: "это не язык программирования", сказал мне один интервьюируемый болван. Джаваскрипт, однако, по выразительности куда как сильнее джавы. А претензии, что на джаваскрипте нельзя файл переименовать, довольно глупы: попробуйте сделать на джаве chmod или chown, а потом уж пеняйте.

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

У джавщиков такое тоже встречается. Процентов 90 джавщиков уверены, что все имена методов должны быть глаголами, а все методы, возвращающие что-либо, не требующее особых вычислений, должны называться getXXX... Соответственно, если ты классу что-то сообщаешь, не требуя ничего взамен, то метод должен называться setXXX... Почему - никто толком не знает; говорят, так надо. Джош в обсуждениях таких вопросов не участвует, только вздыхает: "время ещё не пришло". Да. Супротив толпы не попрешь.

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

А куда податься? Куда податься-то? В хаскельные программисты? Руби? Так чтобы на руби начать продукцию производить, надо сначала три года на си++ программировать, чтобы сделать руби языком, достойным промышленного применения...

Эх... точно мужик один сказал - во многих знаниях много печали.

Re: А куда податься?

Date: 2006-12-19 05:19 pm (UTC)
From: [personal profile] alll
Таки вам чтобы программировать или чтобы с программистами разговаривать? :)

Re: А куда податься?

Date: 2006-12-19 05:38 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Дык в одиночку же много не напрограммируешь. Нужно взаимопонимание.

Re: А куда податься?

Date: 2006-12-19 06:12 pm (UTC)
From: [personal profile] alll
Как вариант - податься в преподаватели. Поговорить "за программирование" можно будет с коллегами-преподавателями, а напрограммировать от души можно будет, собрав команду из аспирантов, да ещё под какой-нибудь грант. Кстати, со своими аспирантами взаимопонимания можно добиться почти идеального. :)

Re: А куда податься?

Date: 2006-12-20 04:06 pm (UTC)
From: [identity profile] anspa.livejournal.com
an ideal way to escape from the real world.

Re: А куда податься?

Date: 2006-12-20 04:19 pm (UTC)
From: [personal profile] alll
Hmmmm, what means "the real world"?

Re: А куда податься?

Date: 2006-12-20 04:38 pm (UTC)
From: [identity profile] anspa.livejournal.com
ну там где делают реальные штуки, а не учут других как их делать.

Re: А куда податься?

Date: 2006-12-20 05:06 pm (UTC)
From: [personal profile] alll
А, так это регион ЮВА! Ну, бегство из него - это многих славный путь.

Date: 2006-12-19 06:08 pm (UTC)
From: [identity profile] birdwatcher.livejournal.com
Эти языки очень похожи тем, что были так безумно интродуцированы. Написал, допустим, на джаве -- оказывается, нельзя просто скомпилировать и запустить, а нужна виртуальная машина. Написал, допустим, на джаваскрипте -- оказывается, нельзя в первой строчке написать #!/usr/bin/javascript и тоже запустить, а все это живет где-то внутри браузера.
*Я говорю, конечно, о положении дел на момент обнародования этих удивительных языков.

Date: 2006-12-20 09:02 am (UTC)
From: [identity profile] mastre.livejournal.com
в виндовс -- можно
(см. active script)

Date: 2006-12-19 06:13 pm (UTC)
From: [identity profile] ygam.livejournal.com
http://ygam.livejournal.com/130137.html?thread=1044569#t1044569

Date: 2006-12-19 07:17 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Вот спасибо за упоминание Хорвата. Я и не знал; ну теперь есть на кого ссылаться будет в борьбе с неожиданно проступающим иной раз маразмом.

Date: 2006-12-19 06:18 pm (UTC)
From: [identity profile] sab123.livejournal.com
Гм, странно. На меня народ в Гугеле произвел толковое впечатление. Чай не финансовая контора какая-нибудь. Хотя народ в области веб-технологий меня обычно тоже пугает.
(deleted comment)

Date: 2006-12-20 12:18 pm (UTC)
From: [identity profile] sab123.livejournal.com
Ась? В ком народ?
(deleted comment)
From: [identity profile] anspa.livejournal.com
я извиняюсь, но почему это должно быть интересно/смешно всем?

Date: 2006-12-19 06:31 pm (UTC)
From: [identity profile] malayshik.livejournal.com
Голаз из толпы:
- уважаемый лектор, вместо того чтобы матом ругаться лучше б скали что за зверь такой эта контра ... (хрен выговоришь). Нужно ее штыком и мечом или проще в застенках запытать?

Date: 2006-12-19 07:14 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Да вон твой коллега тоже изучает эту контру.

Date: 2006-12-19 07:47 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Попробуй податься в верилоговские программисты. Функциональных Hardware Description Languages пока, вроде, не изобрели. Будешь первым - станешь знаменит.

Date: 2006-12-19 08:54 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Последний раз желание изобрести свой язык программирования у меня было, когда мне было 20 лет.

Date: 2006-12-19 09:03 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Интересно было бы собрать статистику по возрасту изобретателей ныне используемых языков (на момент изобретения). Как мне кажется, среднее будет заметно выше 20, а то и 30.

Date: 2006-12-19 07:49 pm (UTC)
From: [identity profile] othodi-mozga.livejournal.com
А что делать с людьми, для которых уже нет разницы на чем писать ?

Date: 2006-12-19 09:04 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Сотрудничать с ними, с профессионалами.

Date: 2006-12-19 08:00 pm (UTC)
From: [identity profile] ex-chrobin.livejournal.com
мне на днях заявили - "javascript - это не язык. это сабскрипт". на вопрос, что такое сабскрипт (я сабскрипт и суперскрипт только из типографии знаю), ответить ничего не смогли. хотя неглупый человек, в общем.

это все действие сми, я считаю.

а насчет руби - там тоже достаточно дуболомов.

Date: 2006-12-19 08:21 pm (UTC)
From: [identity profile] furia-krucha.livejournal.com
Знал я одного Джоша в гугле. Макдоналда. Это не он?

Date: 2006-12-19 08:48 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Я имел в виду Блока, или, как по-русски пишут, Блоха. Французы его кличут "Блош".

Date: 2006-12-19 08:38 pm (UTC)
From: [identity profile] cema.livejournal.com


И правда болван. Джаваскрипт куда интереснее и выразительнее, т.е. "языкастее".

А замыкание мне ни разу по делу использовать не пришлось. Код же люди должны поддерживать!

Date: 2006-12-19 08:49 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
А смотри какую монадическую штуку удалось задвинуть, несмотря на:

function returnValue(value) {
  return function() {
    return value;
  }
}

Date: 2006-12-20 06:05 pm (UTC)
From: [identity profile] anspa.livejournal.com
эстетически все эти выкрутасы конечно - на пять.
но какое они практическое значение имеют.. и кто-то после вас тоже с кодом может работать захочет..

Date: 2006-12-21 12:30 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Ну а на хрена бы я это писал, если бы оно мне не понадобилось в паре мест моего кода?

Date: 2006-12-21 07:45 am (UTC)
From: [identity profile] anspa.livejournal.com
а можно пример? где это действительно во как нужно?

Date: 2006-12-21 10:34 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
  self.init_ = function(source) {
    ...
    self.init_ = returnValue(true);
    ...
  };

Date: 2006-12-21 02:45 am (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
"Почему - никто толком не знает; говорят, так надо."

Потому что идентификаторы должны нести семантическую нагрузку так, чтобы как можно меньше удивлять читающего код. Нам, туповатым джавщикам (сишарпникам в данном случае, но неважно) это понятно. У вас, гениев, все по-другому, но гениев на все IT не хватает.

Date: 2006-12-21 07:49 am (UTC)
From: [identity profile] anspa.livejournal.com
а как бы если без патетики? (всмысле без гениев и туповатых кодеров)
все-таки конформизм обычно ничего нового не рожает.

Date: 2006-12-21 01:21 pm (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
а как бы если без патетики?

да практически так же.

все-таки конформизм обычно ничего нового не рожает.

конформизм ничего не рождает в науке и искусстве. IT в большинстве своем - чистый бизнес, Санни.

Date: 2006-12-21 04:51 pm (UTC)
From: [identity profile] anspa.livejournal.com
не согласен. :) впрочем, как обычно.

Date: 2006-12-21 10:38 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
ничего нового не рожает

чтобы далеко не ходить...

Date: 2006-12-22 02:18 am (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
вот посмотрите, например, на продукт (http://www.compuware.com/products/devpartner/fault-simulator.htm), которым я занимался год до того, как перешел этим летом в shared components team. его писали люди, которым важно не похитрее синтаксически выебнуться, а создать нечто, что можно расширять и поддерживать.

но вы, конечно, такие продукты видите по сто раз на дню, и с удовольствием дадите ссылки на конкурентов, да?

Re: чтобы далеко не ходить...

Date: 2006-12-23 02:41 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Очень ценная вещь. И не то чтобы так уж попадается это дело. Я как-то разок нарисовал класс под названием EvliTable, но, конечно, не так всё системно.

Да, оценил, оценил - но это же другая размерность, нет? Как сравнивать архитектуру и акварель.

Re: чтобы далеко не ходить...

Date: 2006-12-23 03:38 am (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
У нас оперативные домены пересекаются не так чтоб сильно. Отсюда и разница в представлениях.

Date: 2006-12-21 10:37 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
:) How do you deal with list.size() and map.keySet()? Looking for list.getSize() and map.getKeySet()? How about Treaads.currentThread()? How about reader.read()? Why not reader.getMyDataPleasePlease()?

Date: 2006-12-22 02:12 am (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
при нормальном дизайне size должен быть property, а не методом. иначе таки я его назову get_Size().

reader.read(), а не getMyData(), если за чтением данных стоит нечто большее, чем возврат значения поля (и/или если меняется состояние ридера).

и так далее. без выебывания.

Date: 2006-12-23 02:55 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Дык почему get_...? Почему не "размер коллекции" а "взять размер коллекции"? Для чего это "беремщя жубами"? Ведь в любом натуральном языке это будет "цвет граната" - просто свойство объекта. Разве нельзя упоминать свойство объекта в каком-то контексте без того, чтобы его "брать"? А сам объект - его тоже надо "брать"? А потом "класть"? Что-то ассемблер напоминает, нет?

Date: 2006-12-23 03:37 am (UTC)
From: [identity profile] http://users.livejournal.com/_under_score_/
Все правильно. С чего я начал выше?

при нормальном дизайне size должен быть property, а не методом

Date: 2006-12-23 05:14 am (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Ну так мы чудесным образом договорились!

Date: 2007-02-03 04:41 am (UTC)
From: [identity profile] bacek.livejournal.com
Изучения javascript'а по хорошему надо с "On Lisp"а начинать. Хотя это практически к любому языку относится...

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
181920 21 222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 24th, 2025 01:36 am
Powered by Dreamwidth Studios