tag:blogger.com,1999:blog-654279083390275842.post4391950008488437889..comments2024-03-19T12:22:43.654+03:00Comments on Размышлизмы eao197: [prog] Просто несколько новостей и ссылок (Гослинг в Google, Scala 2.9.0-RC1 и TDM-GCC)eao197http://www.blogger.com/profile/17283739752119445290noreply@blogger.comBlogger25125tag:blogger.com,1999:blog-654279083390275842.post-28796522312013956272011-04-01T00:00:27.795+03:002011-04-01T00:00:27.795+03:00@Quaker:
спасибо за информацию. SCOOP в составе к...@Quaker:<br /><br />спасибо за информацию. SCOOP в составе компилятора -- это сильно, молодцы. Сомневаюсь, правда, что это сможет оказать более-менее серьезное влияние на индустрию. Поздновато, имхо. Но молодцы, что допилили.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-5987659572070047822011-03-31T23:18:18.943+03:002011-03-31T23:18:18.943+03:00Помимо TDM-GCC, есть еще одна сборка под windows: ...Помимо TDM-GCC, есть еще одна сборка под windows: http://nuwen.net/mingw.html<br /><br />p.s.<br />Вот еще есть хорошая новость:<br />EiffelStudio 6.8.x Changelog<br />compiler: Added SCOOP support for Windows and Linux.<br />За этой строкой из списка изменений стоит огромная многолетняя работа.Quakerhttps://www.blogger.com/profile/08892867659877597144noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-2241265671919655602011-03-30T21:40:32.691+03:002011-03-30T21:40:32.691+03:00@xonix
>Есть мнение, что отсутствие этих вещей...@xonix<br /><br /><i>>Есть мнение, что отсутствие этих вещей приводит к более type-safe коду.</i><br /><br />Я не разделяю это мнение. Поскольку:<br /><br />a) указатель на метод привязывается к конкретному типу. Т.е. если у вас есть void Runable::*m() и void Callable::*m(), то они не совместимы между собой (если только классы не унаследованы друг от друга);<br /><br />b) широкое использования лямбда-функций в функциональных языках программирование показывает, что type-safety вообще не страдает. Даже не смотря на то, что там к лямбде типа void launch() можно привязать как метод Process.launch, так и NuclearMissle.launch.<br /><br /><i>>Это облегчит набор кода в блокноте, но усложнит в IDE.</i><br /><br />AFAIK, в C# есть перегрузка операторов, но инструментами вроде VisualStudio и Resharper-а народ пользуется без проблем.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-47870300013069405442011-03-30T19:29:07.113+03:002011-03-30T19:29:07.113+03:00> Ну вот мне в Java не хватает таких вещей из C...> Ну вот мне в Java не хватает таких вещей из C++, как указатели на методы (а из C указатели на функции)<br /><br />Есть мнение, что отсутствие этих вещей приводит к более type-safe коду. Я имею в виду, что вы не вставите Runnable туда где принимается, например, Callable. Лично мне кажется, это хорошо.<br /><br />> перегрузку операторов<br /><br />Это облегчит набор кода в блокноте, но усложнит в IDE. Сейчас все операции надо объектом можно узнать написав "obj." и получив выпадающий список со всеми методами. А с операторами, индексаторами, и прочими "полезностями" это будет не так прямолинейно (и <b>регулярно</b>).<br /><br />> шаблоны функций<br /><br />Ну шаблонные методы есть, типа такого:<br /><br />http://download.oracle.com/javase/tutorial/extra/generics/methods.html<br /><br />Впрочем, Вы правы, что это не работает для примитивных типов.xonixhttps://www.blogger.com/profile/10521854320903151029noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-85528339415960657862011-03-30T16:48:33.255+03:002011-03-30T16:48:33.255+03:00@xonix
>А в Go нету исключений, имхо большой м...@xonix<br /><br /><i>>А в Go нету исключений, имхо большой минус.</i><br /><br />На эту тему здесь уже пофлеймили:<br /><br />http://eao197.blogspot.com/2010/10/progflame-d-go.html<br /><br />http://eao197.blogspot.com/2010/10/progflame-go-defer-panic-recover.html<br /><br />По-моему, исключения лучше. Но, в любом случае, паники в Go дают разработчикам хорошие механизмы, которые позволяют писать надежные программы (как раз цель исключений).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-20009947943337832492011-03-30T16:44:27.379+03:002011-03-30T16:44:27.379+03:00@xonix:
>Это компенсировано отсутствием тех са...@xonix:<br /><br /><i>>Это компенсировано отсутствием тех самых лишних сущностей в самом языке. И, с моей т.з., именно это плюс, потому что код получается более регулярен.</i><br /><br />Ну вот мне в Java не хватает таких вещей из C++, как указатели на методы (а из C указатели на функции), указатели на члены класса. Не говоря уже про свободные функции, перегрузку операторов, шаблоны функций. Из того же Ruby не хватает лямбда-функций и примесей. Это все вещи, которые библиотеками не о хватишь. В отличии от XML или Regexp-ов.<br /><br />А так, уж простите мне мою нелюбовь к Java, как язык он регулярно примитивен.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-62625864581819959902011-03-30T16:32:07.195+03:002011-03-30T16:32:07.195+03:00> А в Go нету исключений, имхо большой минус. Э...> А в Go нету исключений, имхо большой минус. Это та сущность, которую никак не назовешь лишней.<br /><br />Ну т.е. то что в Гоу нету наследования в привычном понимании Вас не напрягает, а по исключениям льёте слёзы? ;) Исключения в Гоу не нужны - есть гоурутины и есть паники, отличная замена.Lefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-37922466495750391492011-03-30T16:29:29.408+03:002011-03-30T16:29:29.408+03:00> Не-а, приседания -- это количество сущностей,...> Не-а, приседания -- это количество сущностей, которые приходится плодить в программе. Да, плодить их проще. Но лучше было бы не плодить вовсе.<br /><br />Это компенсировано отсутствием тех самых лишних сущностей в самом языке. И, с моей т.з., именно это плюс, потому что код получается более <b>регулярен</b>. <br />Я считаю, что все что может быть реализовано библиотеками, не имеет права быть встроено в синтаксис языка (например хмл, регулярные выражения и т.д.). Java не случайно так популярна, что гармонично построена из действительно необходимых сущностей. Необдуманная попытка добавить новые сущности в язык может привести к отрицательному результату.<br /><br />> И, имхо, Go как раз язык, в котором (пока?) лишних сущностей плодить не приходится из-за приверженности авторов языка к какой-то доминирующей парадигме (как было в Java с ООП).<br /><br />А в Go нету исключений, имхо большой минус. Это та сущность, которую никак не назовешь лишней.xonixhttps://www.blogger.com/profile/10521854320903151029noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-28246392675560030342011-03-30T10:31:12.258+03:002011-03-30T10:31:12.258+03:00@Left:
>Приседания - это нажатия клавиш, или к...@Left:<br /><br /><i>>Приседания - это нажатия клавиш, или количество умственных усилий. Пофиг что именно - их реально становится меньше.</i><br /><br />Не-а, приседания -- это количество сущностей, которые приходится плодить в программе. Да, плодить их проще. Но лучше было бы не плодить вовсе.<br /><br />И, имхо, Go как раз язык, в котором (пока?) лишних сущностей плодить не приходится из-за приверженности авторов языка к какой-то доминирующей парадигме (как было в Java с ООП).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-84357862491199876052011-03-30T10:27:09.448+03:002011-03-30T10:27:09.448+03:00> Так вот я и говорю -- количество приседаний н...> Так вот я и говорю -- количество приседаний не уменьшается, просто делать их с IDE становится проще.<br /><br />Приседания - это нажатия клавиш, или количество умственных усилий. Пофиг что именно - их реально становится меньше.Lefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-11757389933388404162011-03-30T10:24:51.319+03:002011-03-30T10:24:51.319+03:00@Left:
Так вот я и говорю -- количество приседани...@Left:<br /><br />Так вот я и говорю -- количество приседаний не уменьшается, просто делать их с IDE становится проще.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-82395499496140315862011-03-30T09:28:52.886+03:002011-03-30T09:28:52.886+03:00> А в Java нужно создавать какой-нибудь утилитн...> А в Java нужно создавать какой-нибудь утилитный класс, в котором эта функция будет статическим членом. <br /><br />А в джава с IDE я напишу её по месту (прямо там где она нужна) а потом нажатием пары комбинаций клавиш сделаю её сначала отдельной функцией а потом - функцией в утилитном классеLefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-22009548648525120452011-03-29T22:57:07.136+03:002011-03-29T22:57:07.136+03:00@xonix:
>А можете пояснить разницу?
Ну вот ну...@xonix:<br /><br /><i>>А можете пояснить разницу?</i><br /><br />Ну вот нужна мне в нескольких классах какая-нибудь однострочная вспомогательная функция для преобразования даты/времени в строчку хитрого формата. На C++ или в Ruby я сделаю ее обычной свободной функцией. А в Java нужно создавать какой-нибудь утилитный класс, в котором эта функция будет статическим членом. И так слишком часто -- очень много приседаний нужно делать. IDE облегчает их выполнение, но не особождает от них.<br /><br />Более подробно на тему Java я когда-то писал:<br /><br />http://eao197.blogspot.com/2010/04/progflame-java-i.html<br />http://eao197.blogspot.com/2010/04/progflame-java-ii-java.html<br />http://eao197.blogspot.com/2010/04/progflame-java-iii-java.html<br />http://eao197.blogspot.com/2010/05/progflame-java-v-ide.html<br /><br /><i>>Я думал, проектирование вообще делается отдельно, например в UML.</i><br /><br />Не-не-не :) UML -- это только нотация для записи проектных решений.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-63753966491801947732011-03-29T22:43:05.402+03:002011-03-29T22:43:05.402+03:00@Left:
>Хорошая IDE рулит со страшной силой ко...@Left:<br /><br /><i>>Хорошая IDE рулит со страшной силой когда нужно разобраться в том как что-то работает или поменять спроектированное решение (читай - зарефакторить).</i><br /><br />С этим я спорить не буду, я о другом говорил.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-68852003435792025112011-03-29T19:33:21.806+03:002011-03-29T19:33:21.806+03:00>Хорошая IDE упрощает набор программ на Java, н...>Хорошая IDE упрощает набор программ на Java, но не их написание (проектирование).<br /><br />А можете пояснить разницу? Я думал, проектирование вообще делается отдельно, например в UML.xonixhttps://www.blogger.com/profile/10521854320903151029noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-31320231263578998512011-03-29T19:07:14.025+03:002011-03-29T19:07:14.025+03:00> Хорошая IDE упрощает набор программ на Java, ...> Хорошая IDE упрощает набор программ на Java, но не их написание (проектирование).<br /><br />Набор и написание вроде как одно и то же.<br /><br />Хорошая IDE рулит со страшной силой когда нужно разобраться в том как что-то работает или поменять спроектированное решение (читай - зарефакторить).Lefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-14024090195181953202011-03-29T18:26:38.638+03:002011-03-29T18:26:38.638+03:00@xonix:
Хорошая IDE упрощает набор программ на Ja...@xonix:<br /><br />Хорошая IDE упрощает набор программ на Java, но не их написание (проектирование).eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-24542625553673191932011-03-29T17:15:22.942+03:002011-03-29T17:15:22.942+03:00>просто, но неприятно.
Почему неприятно, с хор...>просто, но неприятно.<br /><br />Почему неприятно, с хорошей IDE - очень даже приятно.xonixhttps://www.blogger.com/profile/10521854320903151029noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-88113843845366514412011-03-29T17:12:28.720+03:002011-03-29T17:12:28.720+03:00@yuhala:
Спасибо, не знал.@yuhala:<br /><br />Спасибо, не знал.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-15248285758877458932011-03-29T17:04:22.881+03:002011-03-29T17:04:22.881+03:00Сейчас для MinGW уже есть инсталлятор.Сейчас для MinGW уже есть инсталлятор.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-1220206727271299812011-03-29T16:15:16.340+03:002011-03-29T16:15:16.340+03:00@buffovich:
В смысле написанная и внедренная тобо...@buffovich:<br /><br />В смысле написанная и внедренная тобой промтулза?eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-80805404705851250142011-03-29T16:14:54.145+03:002011-03-29T16:14:54.145+03:00@Left:
Боюсь за Go. А то Гослинг себя зарекомендо...@Left:<br /><br />Боюсь за Go. А то Гослинг себя зарекомендовал как разработчик языков, которыми пользоваться просто, но неприятно.eao197https://www.blogger.com/profile/17283739752119445290noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-30099300662629686932011-03-29T16:00:30.490+03:002011-03-29T16:00:30.490+03:00> Надеюсь, к развитию Go его не допустят :)
Я ...> Надеюсь, к развитию Go его не допустят :)<br /><br />Я тоже. Одна пром.-тулза на нём уже.TheIvanhttps://www.blogger.com/profile/11931314459288488151noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-30619955050828860002011-03-29T15:41:54.656+03:002011-03-29T15:41:54.656+03:00PS: В GCC 4.6 кстати уже есть Go-фронтэндPS: В GCC 4.6 кстати уже есть Go-фронтэндLefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.comtag:blogger.com,1999:blog-654279083390275842.post-61787695398649230432011-03-29T15:40:42.691+03:002011-03-29T15:40:42.691+03:00> Так что Гослинг нонче в Google. Почему-то я э...> Так что Гослинг нонче в Google. Почему-то я этому совсем не удивлен. Надеюсь, к развитию Go его не допустят :)<br /><br />Боитесь за Гослинга или за Гоу?Lefthttps://www.blogger.com/profile/17455926726018486961noreply@blogger.com