![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#61 | |
Заслуженный Участник
|
![]() Цитата:
И джава - это не абстракция, а сильное упрощение на самом деле. Полезная для кодирования абстракция - это например лямбда-исчисление, closures, yield semantics, или к примеру отмена типизации (спорно), да и ООП вобщем-то тоже заняло свое место под солнцем. Это все есть абстракции. А Джава/C# не дают ничего нового, это просто кастрация некоторых - лишь некоторых - хороших абстракций - вот в чем проблема. |
|
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#62 | |
дядечка предпенсионного возраста
|
![]() Цитата:
Упрощение это как раз основная цель любой абстракции. То есть мы как бы абстрагируемся от ненужных деталей, тем самым сосредоточившись на важном. Ссылку не нашел, в общем однажды наткнулся в сети на сайт конторы, которая рабоатет для DoD и которая всякими очень будущими исследованиями занимается. Там от программистов помимо секьюрити клиренс еще требовалось продемонстрировать стиль программирования. То есть обычно при приеме на работу про мой стиль никто не спрашивает.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
|
![]() |
![]() |
![]() |
#63 | |
Заслуженный Участник
|
![]() Цитата:
Джава - это упрощение в том смысле, что в нем урезаны какие-то абстракции просто потому, что Комитет решил "это слишком сложно, и будет не по зубам многим". Где например лямбда-функции, которые раньше были чем-то экзотическим, но сейчас уже есть во всех мейнстримовых языках - Python, Ruby и JavaScript (ECMA)? Между прочим в таких языках как Lisp и Scheme, реализация лямбда-исчисления и closures настолько мощное, что оно покрывает и ООП. Но это уже та самая "квантовая механика". И плюс, если Джава заставляет много писать, можно ли считать это упрощением? |
|
![]() |
![]() |
Благодарность от: | Oleg123 (23.01.2008) |
![]() |
#64 |
дядечка предпенсионного возраста
|
![]()
По идее в Джаве должно быть многое, если не встроенное, то в виде библиотек уж точно. Вот например можно здесь посмотреть для начала http://www.ibm.com/developerworks/li...l?ca=drs-j2904 .
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
![]() |
![]() |
![]() |
#65 | |
Заслуженный Участник
|
![]() Цитата:
![]() |
|
![]() |
![]() |
Благодарность от: | Oleg123 (23.01.2008) |
![]() |
#66 |
дядечка предпенсионного возраста
|
![]()
Про длинну да особо не поспоришь ибо функции короче любых выражений императивных языков, но вот про удобство прочтения и понимания можно спорить.
Хотя я согласен сойтись, на чем предлагает сойтись Людвиг. То есть прекрасно все так как оно и есть, хоть у некоторых, включая меня и вызывает периодически раздражение. Но на то мы и живые, чтобы раздражаться иногда ![]()
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. Последний раз редактировалось Oleg123, 23.01.2008 в 13:10. |
![]() |
![]() |
Благодарность от: | Kot (23.01.2008) |
![]() |
#67 | |
Заслуженный Участник
|
![]() Цитата:
![]() ![]() ![]() ![]() Уходите в embedded программирование, или в куда-нить где научные задачи решают, и вас перестанут раздражать те, кто пишет на java. Будете копаться в своей песочнице ![]() |
|
![]() |
![]() |
![]() |
#68 | |
Заслуженный Участник
|
![]() Цитата:
Код:
function make_incrementor(a) { return function(b) { return a + b; } } ![]() Lisp и прочие товарищи с их, пардон, хитрожопыми парадигмами - это такая штука, они даются нелекго, но если однажды ты испытываешь GOT IT, то никто на свете не сможет заставить тебя писать длиннее или мыслить everyting-OO. Сам Лисп используется скорее редко, но он развивает вкус к языкам и программированию вообще, когда начинаешь действительно понимать что красиво а что нет. Тогда к лопате и экскаватору добавляются еще куча супер-кибер-экскаваторов, которые могут вырыть траншею шириной хоть в 1см, хоть в 5м ![]() И что интересно, люди, которые прошли через это никогда не скажут "языки - это дело вкуса". Это вообще неправильная фраза, некое убежище для тех, кто вкуса на самом деле не имеет, если называть вещи своими именами. Все сказанное тут может быть неправильно понято, но я спорить уже не буду ![]() OgreSwamp, нет, это не вопрос того, что я больше не бог или что могу остаться невостребованным - вопрос так не стоит. Собственно уже все сказал в том длинном комменте. Просто сторонникам Джавы и C# следует, мягко говоря, попытаться не защищать свою позицию, потому что это выглядит смешно. Кодируете - кодируйте на здоровье, я сейчас тоже полез в это болото, C# конкретно, но хотя бы не надо защишать эту фигню ![]() |
|
![]() |
![]() |
Благодарность от: | Oleg123 (23.01.2008) |
![]() |
#69 |
дядечка предпенсионного возраста
|
![]() ![]() a и b читаются конечно без проблем, но речь не о том, речь о том что логику кода понять труднее, не говоря уже о бизнес логике, которую этот код представляет. Потому что для описания бизнес логики аналисты часто используют обычный английский язык, а императивные языки ближе к обычным языкам, чем функции. А быстро понять бизнес логику программером (новичком например), представляемую кодом для бизнеса важнее. Поэтому например у нас на проектах красоту и краткость кода легко приносят в жертву нагладности кода и даже его соответствию видению аналитика, то есть если порой аналитик видит где то цикл, а кодеру проще рекурсию туда воткнуть, то если он все таки воткнет туда рекурсию, то его поправят старшие товарищи. Ужоос. Согласен, но селяви. И прав OgreSwamp, есть другие задачи, где наверно функции будут более уместны, пусть даже и не легко читабельны.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
![]() |
![]() |
Благодарность от: | Ludwig (23.01.2008) |
![]() |
#70 |
Заслуженный Участник
|
![]()
Oleg123:
Аналитики - это вообще отдельная статья. Где-то на днях читал, у кого-то известного, что мол эпоха аналитиков прошла еще 20 лет назад, и что сейчас программисты всё делают сами. Я и сам офигел - как это 20 лет назад, вот же они, полно их вокруг нас, как мух... ![]() Так вот, схема анализ -> код -> тестирование и все многочисленные промежуточные фазы применяется в больших, неповоротливых и как результат - неэффективных компаниях. И вот именно для них и созданы Java/C#. Эти языки предназначены для начальников и аналитиков, скорее чем для программистов. А значит если небольшой, шустрый стартап, для которого эффективность разработки очень критична, выбирает Джаву - это однозначно большая ошибка. Для эффективной разработки есть языки получше, так же как и программисты классом повыше. |
![]() |
![]() |
![]() |
#71 | |
дядечка предпенсионного возраста
|
![]() Цитата:
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
|
![]() |
![]() |
![]() |
#72 | |
Заслуженный Участник
|
![]() Цитата:
Ludwig добавил 23.01.2008 в 16:43 Это правда. Но чего не видят те, "плохие" компании, которые неповоротливые, неэффективные итд, что если вместо N высококлассных они берут N * M посредственных за более низкую зарплату, то они могут проиграть in the long run из-за того, что на сопровождение плохого продукта уйдет больше ресурсов. Плохой код и все что его сопровождает - долгий пинг-понг между тQA и программистами, бесконечная вереница патчей итд - увлекает настолько, что начинает казаться нормой, и люди теряют из виду насколько они усложнили себе жизнь. Не стал бы этого утверждать, если бы не видел во многих компаниях. Последний раз редактировалось Ludwig, 23.01.2008 в 15:43. Причина: Добавлено сообщение |
|
![]() |
![]() |
Благодарность от: | Oleg123 (23.01.2008) |
![]() |
#73 | |
дядечка предпенсионного возраста
|
![]() Цитата:
![]() http://en.wikipedia.org/wiki/Imperative_programming
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
|
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#74 |
Заслуженный Участник
|
![]()
Oleg123,
Мы вобщем говорим не об imperative vs. functional, а скорее о стиле программирования. Очень хорошо, я сейчас как раз думал, а чем же в самом деле ОО подход, который в статье IBM, лучше или хуже в смысле читабельности моего варианта на JavaScript? Предположим я ставлю такую задачу: нужна функция f(a, b) (пусть это будет сложение a и b для простоты) но a меняется гораздо реже b. Это и есть вся задача на человеческом языке. В JavaScript это записывается в максимально компактной и вполне понятной форме - понятной для тех, кто знает что такое безымянная функция. Теперь Джава: я вижу в коде MyGreatClosureClass MyGreatClosureObject = new MyGreateClosureClass(); MyGreateClosureObject.Run(); и класс естесвенно определен в другом месте. Значит мне надо идти туда, к определению класса, прочесть его, еще обнаружить, что он произведен от некоего Runner - wtf? - искать документацию про Runner, итд. Итого времени уйдет больше, просто потому, что больше вещей написано, причем они еще и разбросаны. Это примерно как читая обычный текст, уйти в сноску, потом в другую сноску, а потом окончательно упустить нить того, что ты читал. Так что выглядит более человечно? ![]() P.S. там на самом деле должно быть еще MyGreatClosureObject.b = что-то; - еще одна строка. Последний раз редактировалось Ludwig, 23.01.2008 в 16:27. |
![]() |
![]() |
Благодарность от: | Oleg123 (23.01.2008) |
![]() |
#75 |
Заслуженный Участник
|
![]()
Оу щит, Ludwig
![]() Пожалуй действительно стоит прекратить дискуссию (о чем я говорил в саамом первом посте). Извините канечно, но от вас таки разит максимализмом. На сим откланиваюсь и ухожу из темы. Больше дискутировать не вижу смысла. |
![]() |
![]() |
Благодарность от: | Kot (24.01.2008) |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Вопрос: Ирландия, первое знакомство | Аметист | Путешествия и Отдых | 2 | 09.02.2007 10:56 |
Программистов освободят от налогов | AlexM | IT и Связь | 2 | 13.05.2006 08:03 |
Группа web-программистов ищет удаленную работу | Mnemonick | Работа в Ирландии | 7 | 09.02.2006 13:04 |
ОС Java ДВ | Lammo | IT и Связь | 74 | 29.07.2005 15:49 |
Работа для программистов на PHP | Arte | Работа в Ирландии | 2 | 09.03.2004 13:47 |