Конечно, понимаю. Но ты же сам понимаешь, что самый распрекрасный язык, у которого самая мейнстримовая тулза глючна НАСТОЛЬКО вообще никому нафиг не нужен. Ну, в идеалеИнтеррапт wrote:Ну ты же сам понимаешь, что не в языке дело, а в плагине. А то, что плагин может быть сыроват под Juno при каких-то конфигурациях, то все может быть. У меня, кстати, Scala Ide for Eclipse плагин без проблем под Juno бегает.
Список перспективных технологий
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
Ну сам писать не буду, лучше скопирую из "интернетов"АццкоМото wrote:Имхо, создатели бобов ели неправильные грибы. И в какой-то момент им почудилось... нет, дальше боюсь анализировать, говорят, можно подсестьM. Ridcully wrote:А меня раздражает принципиально избыточная фича, поддерживаемая на уровне специального синтаксиса. Есть переменные, а есть - функции. Если заканчивается на () - значит функция, нет - переменная. А тут какой-то огород - ну чем геттеры-сеттеры такие особенные по сравнению с другими фукциями?!
There are actually many good reasons to consider using accessors rather than directly exposing fields of a class - beyond just the argument of encapsulation and making future changes easier.
Here are the some of the reasons I am aware of:
- Encapsulation of behavior associated with getting or setting the property - this allows additional functionality (like validation) to be added more easily later.
- Hiding the internal representation of the property while exposing a property using an alternative representation.
- Insulating your public interface from change - allowing the public interface to remain constant while the implementation changes without effecting existing consumers.
- Controlling the lifetime and memory management (disposal) semantics of the property - particularly important in non-managed memory environments (like C++ or Objective-C).
- Providing a debugging interception point for when a property changes at runtime - debugging when and where a property changed to a particular value can be quite difficult without this in some languages.
- Improved interoperability with libraries that are designed to operate against property getter/setters - Mocking, Serialization, and WPF come to mind.
- Allowing inheritors to change the semantics of how the property behaves and is exposed by overriding the getter/setter methods.
- Allowing the getter/setter to be passed around as lambda expressions rather than values.
- Getters and setters can allow different access levels - for example the get may be public, but the set could be protected.
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Список перспективных технологий
Страустрап не монстр же, а тоже смертный. Затем Степанов тоже почему-то добавил полезности не хило с STL, а ишь ты, не всё даже в пределах не самой большой библиотеки предусмотрел. Затем целая толпа с Boost и докладыванием в STL, тоже как-то недоработали до идеала.M. Ridcully wrote: Да я не спорю (я пока и не разбирался методично с C++11, надо бы как-нить почитать...). Просто подумалось: вот выпустили вначале C++, а STL/standard library - забыли.
Да-да, столько радости, сколько сопровождение многолетнего сишного плоского кода, ничто не приносит.В результате все понаписали туевы хучи сомнительного качества кода для работы с самопальными коллекциями, строками и т.д. Потом спохватились, добавили коллекции и строки, но какая-то часть девелоперов и проектов ушла от C++ куда-то в другую сторону. А оставшиеся получили долговременный "фан" в виде необходимости сочетать новые коллекции и строки с оставшимся в наследство говнокодом.
Более того, активно объясняют, что использование threads напрямую - только по чётко осознанной необходимости, а для распараллеливания есть std::async. И большое им спасибо за доведение этой мысли до широких масс трудящихся.Теперь вот ещё что-то добавили; threading support in the language? Добро пожаловать поженить это с кодом, в котором threading сделан на уровне platform API (threading я взял для примера, может чего-то и не то говорю - просто идею иллюстрирую).
Что забавно, MS, вроде как, положивши столько сил не так давно на изведение под корень нативного прикладного программирования (.Net, как-то всё тише теперь про него), даёт теперь ему зелёный свет. Идея об общей код-базе для десктоп - таблет - телефонных аппов превалирует теперь. А потребности в CPU и памяти, прямо сейчас, очевидно, растут в слишком сильной привязке с выделяемым теплом. Серверы сильно греются. Таблеты (слейты их некоторые называют) греются. Телефоны жрут батарейку, как не в себя на новых аппах.То есть я охотно верю, что выйди C++11 тогда, как новый язык - было бы замечательно.
А сейчас, боюсь, не так уж много программистов и проектов останется, кто бы стал его использовать как general-purpose language.
Я сам ещё совсем недавно был большим поклонником C++, только вот смотрю, что он всё больше используется в каких-то причудливых нишах, которые ну никак не фан. А всё основное пишется на Java (ну или .NET в отдельных географиях, говорят).
Так что, прямо сейчас, главное, выбрать правильное приложение своим приложениям, будь они хоть драйверами. Надо быть в курсе политики партии по данному вопросу.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
У меня не глючит, у Крипто5 не глючит, у тебя глюкнула - (а) ну бывает, у меня Эклипс и на GWT глюкался (б) не факт, что это Скала плагин виноват.АццкоМото wrote:Конечно, понимаю. Но ты же сам понимаешь, что самый распрекрасный язык, у которого самая мейнстримовая тулза глючна НАСТОЛЬКО вообще никому нафиг не нужен. Ну, в идеалеИнтеррапт wrote:Ну ты же сам понимаешь, что не в языке дело, а в плагине. А то, что плагин может быть сыроват под Juno при каких-то конфигурациях, то все может быть. У меня, кстати, Scala Ide for Eclipse плагин без проблем под Juno бегает.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Список перспективных технологий
Ну значит не судьба, такое тоже бывает.АццкоМото wrote:"Пилюшин сморгнул, но женщина осталась". Да вроде как вынес все, а нифига, результат тот же. Новая копия Juno старый воркспейс не всасывает с той же проблемой. Т.е. встретился глючный плагин с глючным IDE. Стектрейс был мутный (грохнул уже), на скалу ничего явно не указывало, NPE где-то в Эклипсе, но совпадений таких один хрен не бываетИнтеррапт wrote: Ну так удали плагин, делов то. Довольно простая процедура, даже если вручную. А стактрейс то покажи, чтобы отправить ребятам, кто плагин делает. Аццко, и вообще - не ворчи по пустякам, релиз видите-ли у него
In vino Veritas!
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Список перспективных технологий
Интеррапт, я скорее всего эти книжки тоже читал .Интеррапт wrote: А если в каком-то сабклассе вы решите, что вам нужно переписать поведение этой функциональности.
А почему бы не изобрасти специальный синтексис для другим идиом и паттернов? Давайте придумает какую-нить специальную, особую семантику для функций createXXX - типа factory-method? Или какой-нить хитрый shortcut для функций onXXX, чтобы observer имплементировать? Или.... а может, остановиться и не городить этот огород?
Я если честно вообще такой стиль, где много геттеров-сеттеров (безотносительно - сгеренённых или рукописных) не люблю. Мне кажется, что что-то не то с дизайном, где их много (если не говорить о какой-то очень узкой специфической области, типа UI).
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
Отлично. Тогда нам будет легче понять друг-другаM. Ridcully wrote:Интеррапт, я скорее всего эти книжки тоже читал .
И вы не так уж и неправы. Например, в C# есть специальный синтаксис для делегатов. Отличная вещь. И properties есть. То, чего в Джаве нет. И как-то никто не жалуется, что это избыточная вещь, а наоборот, используют в полный рост.M. Ridcully wrote:А почему бы не изобрасти специальный синтексис для другим идиом и паттернов? Давайте придумает какую-нить специальную, особую семантику для функций createXXX - типа factory-method? Или какой-нить хитрый shortcut для функций onXXX, чтобы observer имплементировать? Или.... а может, остановиться и не городить этот огород?
Для createXXX скорее всего синтаксис не нужен, потому что их у вас редко когда будет больше чем несколько штук в классе. А вот getters/setters может быть очень много в models.
А при чем здесь дизайн, если у вас есть модель с именем/фамилией, почтовым адресом, гордом, штатом, телефоном, и еще десятком полей? Можно конечно это по разным классам разнести (типа почтовый адрес в отдельный класс), только от этого кол-во setters/getters и строчек с тупыми javadocs - не изменится.M. Ridcully wrote:Я если честно вообще такой стиль, где много геттеров-сеттеров (безотносительно - сгеренённых или рукописных) не люблю. Мне кажется, что что-то не то с дизайном, где их много (если не говорить о какой-то очень узкой специфической области, типа UI).
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Список перспективных технологий
Описанное выше - это просто данные. Пока не ясно, зачем вообще нужен класс.Интеррапт wrote:А при чем здесь дизайн, если у вас есть модель с именем/фамилией, почтовым адресом, гордом, штатом, телефоном, и еще десятком полей?
Другими словами - у класса должны быть какие-то responsibility, он должен что-то делать. Тупая инкапсуляция данных как responsibility не канает, это anti-pattern.
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Список перспективных технологий
Ну ОК, спишем это на субъективность. Вам - нравится, мне - нет.Интеррапт wrote: И вы не так уж и неправы. Например, в C# есть ...
Мне вообще последнее время с эстетической точки зрения нравится программировать на C и на Питоне (без классов).
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
Извините, но в Java нет структур (в их Сишном понимании). Есть только классы.M. Ridcully wrote:Описанное выше - это просто данные. Пока не ясно, зачем вообще нужен класс.
Ну попробуйте описать JPA Entity без класса.M. Ridcully wrote:Другими словами - у класса должны быть какие-то responsibility, он должен что-то делать.
Ссылочку можно на то, что класс с данными, но без логики - это anti-pattern?M. Ridcully wrote:Тупая инкапсуляция данных как responsibility не канает, это anti-pattern.
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Ну, в энторнэты-то КО писал. Я немного не о том толкую. Нет никакого смысла генерить "про запас" методы доступа, в которых нет никакой логики.Интеррапт wrote: Ну сам писать не буду, лучше скопирую из "интернетов"
There are actually many good reasons to consider using accessors rather than directly exposing fields of a class - beyond just the argument of encapsulation and making future changes easier.
Here are the some of the reasons I am aware of:
- Encapsulation of behavior associated with getting or setting the property - this allows additional functionality (like validation) to be added more easily later.
- Hiding the internal representation of the property while exposing a property using an alternative representation.
- Insulating your public interface from change - allowing the public interface to remain constant while the implementation changes without effecting existing consumers.
- Controlling the lifetime and memory management (disposal) semantics of the property - particularly important in non-managed memory environments (like C++ or Objective-C).
- Providing a debugging interception point for when a property changes at runtime - debugging when and where a property changed to a particular value can be quite difficult without this in some languages.
- Improved interoperability with libraries that are designed to operate against property getter/setters - Mocking, Serialization, and WPF come to mind.
- Allowing inheritors to change the semantics of how the property behaves and is exposed by overriding the getter/setter methods.
- Allowing the getter/setter to be passed around as lambda expressions rather than values.
- Getters and setters can allow different access levels - for example the get may be public, but the set could be protected.
Вот если бы было такое чудо, я бы двумя руками его пожал (условный псевдойызык, сам с него ржу)
Code: Select all
class A {
virtual public int i;
}
class B: A {
@override
A::i {
public int get () {
return A::i*28;
}
public void set (int _i) {
if (i>5) throw new exception ("I'm class B, not A, and care only about values not greater than 5");
i=_i;
}
}
void main () {
// This returns an instance of B
A a = someClassFactory ("Gimme an instance of B");
a.i = 7; // And this throws an exception...
}
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Да понятно, что не свезло и не факт, что вина именно Скалы. Но осадок-то остался. Как-то все immature, не смотря на 9-летний возраст.Интеррапт wrote: У меня не глючит, у Крипто5 не глючит, у тебя глюкнула - (а) ну бывает, у меня Эклипс и на GWT глюкался (б) не факт, что это Скала плагин виноват.
А краткий экскурс по самому языку мне скорее понравился, чем нет. Не могу еще сообразить, понравится ли на нем писать, но отторжения не вызывает, а что-то хочется и попробовать
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Список перспективных технологий
Можно еще idea попробовать заюзать. Бытует мнение что у нее лучше поддержка скалы.АццкоМото wrote:Да понятно, что не свезло и не факт, что вина именно Скалы. Но осадок-то остался. Как-то все immature, не смотря на 9-летний возраст.Интеррапт wrote: У меня не глючит, у Крипто5 не глючит, у тебя глюкнула - (а) ну бывает, у меня Эклипс и на GWT глюкался (б) не факт, что это Скала плагин виноват.
А краткий экскурс по самому языку мне скорее понравился, чем нет. Не могу еще сообразить, понравится ли на нем писать, но отторжения не вызывает, а что-то хочется и попробовать
In vino Veritas!
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Может быть, но у нее поддержка ондроеда ниже плинтуса, а переключаться с одной IDE на другую тяжко. Впрочем, если и язык меняется, возможно, их как раз и стоит разнести. Попробую ещеcrypto5 wrote:Можно еще idea попробовать заюзать. Бытует мнение что у нее лучше поддержка скалы.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
А что там может не понравится? Та же Джава, только с дополнительными удобствами.АццкоМото wrote:А краткий экскурс по самому языку мне скорее понравился, чем нет. Не могу еще сообразить, понравится ли на нем писать, но отторжения не вызывает, а что-то хочется и попробовать
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Там может непонравиться изобретение велосипеда там, где все и так нормально. Начерта эти дурацкие def? Начерта => ? Да даже чем фигурные скобки или точки-с-запятой не устраивали, не понятно. Можно было чуть более традиционно подойтиИнтеррапт wrote:А что там может не понравится? Та же Джава, только с дополнительными удобствами.АццкоМото wrote:А краткий экскурс по самому языку мне скорее понравился, чем нет. Не могу еще сообразить, понравится ли на нем писать, но отторжения не вызывает, а что-то хочется и попробовать
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
Это ты правильно ржешь. Не хотел бы я работать с языком, где можно обьявить переменную виртуальной.АццкоМото wrote:Вот если бы было такое чудо, я бы двумя руками его пожал (условный псевдойызык, сам с него ржу)
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Список перспективных технологий
Фигурные скобки вроде есть, а точки с запятой опциональны. А что с => не так? Что там вместо него по классике должно быть?АццкоМото wrote:Там может непонравиться изобретение велосипеда там, где все и так нормально. Начерта эти дурацкие def? Начерта => ? Да даже чем фигурные скобки или точки-с-запятой не устраивали, не понятно. Можно было чуть более традиционно подойтиИнтеррапт wrote:А что там может не понравится? Та же Джава, только с дополнительными удобствами.АццкоМото wrote:А краткий экскурс по самому языку мне скорее понравился, чем нет. Не могу еще сообразить, понравится ли на нем писать, но отторжения не вызывает, а что-то хочется и попробовать
In vino Veritas!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Список перспективных технологий
Потому что такая нотация стала де-факто стандартом для лямбда выражений. Зачем же велосипед изобретать и придумывать другую нотацию?АццкоМото wrote:Начерта => ?
К фигурным скобкам и точкам-с-запятой я и сам привык - так что тут согласен. Пусть будут. Тем более, что их никто не отменялАццкоМото wrote:Да даже чем фигурные скобки или точки-с-запятой не устраивали, не понятно. Можно было чуть более традиционно подойти
-
- Уже с Приветом
- Posts: 11999
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: Список перспективных технологий
Хмм, ну тогда бы это меня беспокоило бы намного больше, чем отсутствие геттеров-сеттеров.Интеррапт wrote:Извините, но в Java нет структур (в их Сишном понимании). Есть только классы.
Хотя, можно притвориться что есть 2 типа классов - собственно классы и классы-структуры.
Ссылка на что вас устроит? Если какой-нить Знаменитый Гуру Вася Пупкин скажет, что это anto-pattern - то это лично для вас что-то изменит?M. Ridcully wrote: Ссылочку можно на то, что класс с данными, но без логики - это anti-pattern?
Мне логики хватает. Логика примерно такая, что программа должны что-то _делать_, т.е. она принимает входные данные, чего-то с ними делает, и выплёвывает результат. Соответственно написание статичного кода, который просто тупо занимает ячейки памяти - какой в нём смысл?
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Это тебе так кажется. Было бы в разы удобнее - потому что символ "=" в стопицот раз более читаем для гетов и сетов, чем дебильное getVariable()Интеррапт wrote:Это ты правильно ржешь. Не хотел бы я работать с языком, где можно обьявить переменную виртуальной.АццкоМото wrote:Вот если бы было такое чудо, я бы двумя руками его пожал (условный псевдойызык, сам с него ржу)
На слове "virtual" не настаиваю. На самом деле все, что нужно - некое обозначение, могут ли подклассы переопределить методы доступа к переменной или нет. Все. Существование геттеров и сеттеров в явном виде это какой-то атавизм, как и присутствие названия переменной в в имени методов - ДВАЖДЫ
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Список перспективных технологий
Ох уж прямо и стандарт. В С++11 с квадратными скобками живут и не жужжатИнтеррапт wrote: Потому что такая нотация стала де-факто стандартом для лямбда выражений. Зачем же велосипед изобретать и придумывать другую нотацию?
() => someCrap()
легко можно заменить на
() { someCrap(); }
или даже на
{ someCrap(); } ()
будет в разы приличнее и привычнее
нуууу. как сказатьИнтеррапт wrote: К фигурным скобкам и точкам-с-запятой я и сам привык - так что тут согласен. Пусть будут. Тем более, что их никто не отменял
вот копи-пейст
override def toString() =
"" + re + (if (im < 0) "" else "+") + im + "i"
меня это выбешивает. где начало, где конец - поди разбери. пицот лет обсуждали, что лучше писать if (0==i), чем if (i==0), что имеет смысл лишний раз фигурные скобки поставить, когда пишешь
if (crap)
return other_crap;
а тут такие перцы решили сэкономить. я представляю, сколько хреново обнаруживаемых на глаз багов будет
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Список перспективных технологий
Про длинные строки - это, кстати, грабля всех языков, начиная от Лиспа. Часто читаешь статью Эрлангщика с одной строкой килобайт длинной и подпись внизу "ну вот как тут легко видно...". И тут же хочется заорать: "Как!? Где!?". Я, наверное, никогда не привыкну к функциональному коду. Поэтому, возможно, я и лямбды, кложуры и блоки ненавижу. Читаешь в столбик и тут бац! все в ширину идет.
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Список перспективных технологий
Можно выработать стандарты форматирования кода правильные.dotcom wrote:Про длинные строки - это, кстати, грабля всех языков, начиная от Лиспа. Часто читаешь статью Эрлангщика с одной строкой килобайт длинной и подпись внизу "ну вот как тут легко видно...". И тут же хочется заорать: "Как!? Где!?". Я, наверное, никогда не привыкну к функциональному коду. Поэтому, возможно, я и лямбды, кложуры и блоки ненавижу. Читаешь в столбик и тут бац! все в ширину идет.
In vino Veritas!
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Список перспективных технологий
Не спорю. Можно. Хотя в функции писать, все эти pattern matching с кучей параметров, фиг отформатируешь.crypto5 wrote: Можно выработать стандарты форматирования кода правильные.