Ну асп сразу отпадает. я с него ушел на пых не так давно. Мне не нравится, потому что нацелена исключительно на продукты мелкософта, на спецификации мелкософта, на интересы мелкософта. То есть интеграция опять страдает. Мне такое не нравится. Это сейчас не в духе времени. Ну и спектр ее резвертывания уже, потому что ось только виндовая и все за бабки. Они гугл не поддерживают и не будут поддерживать, потому что гугл - это основной конкурент Yahoo и в поиске и в сервисах. Теперь еще и в браузерах. Они не дружат с оракл за субд и яву. Ява вообще ненавидят. Ни с кем не дружат. Я боюсь, что все будут двигаться вперед, а нетовцы только материться, потому что у них ничего кроме ВинСервер+МССервер+АД+Иксчендж не работает. При всем при этом им будут 24 часа в сутки промывать мозги, что им всем крупно везет, они избранные, они используют самые современные технологии, и за это должны быть благодарны мелкософту и прощать его. Я пока на шарпе сидел, так и думал. И про язык и про веб-сервер и про ИДЕ. К примеру, они говорят, мы делаем амайзиг вещь- с дот.ком можно писать приложения, которые будет одинаково выполняться на любой платформе одинаково. Вы не поверете, вплоть до мобильника! Да! Подождите всего 100 лет. Это того стоит. Скоро наступит рай на земле. Наш язык такой класный, что компилется в промежуточный код, который будет исполняется в привязанной к оси и железу среде. Для винды она уже готова. Подождите еще всего 100лет. Это того стоит! Мы делаем амайзинг! Будьте с нами! В этот момент, как вы понимаете, явы как бы не существует вообще. Я в тот момент слышал название, но не знал, что это такое. Тоже самое и про делегаты, и про объектность, и про мета-теги для документирования, и про неймспейсы, и про рефлекшн, и про деплоймент, и про СВН и про все остальное. И никогда ни слова, что это уже сто лет, как используется в др. языках и средах. Что то, что у них еще в бетах, другие уже давно юзают. Все аспешники так прозомбированы. А потом, когда ушел на пхп, выпал из под этого пресса и чуть не акуел, в какой жопе оказывается сидел. По привычке на студии для пхп еще какое то время сидел. Потом ушел на нетбинс и еще больше акуел. Потом узнал про яву, про питон, про руби и тогда уже вообще акуел. Что то обратно не тянет.
alexey_baranov Дааа, ты теперь почти полностью акуевший!!! )) (ps: и отбиваешь у меня желание познавать c#)
Если уж говорить об альтернативах - мне как пэхэпэ-программисту больше импонирует JavaScript - как язык наиболее популярный и близкий к PHP, есть реализации и под .NET/Mono и под Java (Rhino), отcюда и плюшки с интеграцией этих платформ. Еще для пхп есть реализация под Java (Quercus), так что несобираюсь переходить ни на какой руби, cлишком уж он японский и ортодоксальный.
у пхп тоже есть минусы. Ща разбираюсь с phpbb, ниибацо, третьим и мне хочется блевать. мудаки! так просто нельзя писать! *плачу
Frozen Вот нашли на чём пример блин привести Вы бы ещё PHPNuke взяли Хотите хороший код на PHP? CodeIgniter, Kohana, Yii, Zend Framework
У кого-нибудь здесь есть нетбинс с руби? напишите код в руби. вот просто без всяких установок и доп. настроек создайте консольное приложение и напишите в файлике вот это. Код (Text): require 'java' # With the 'require' above, we can now refer to things that are part of the # standard Java platform via their full paths. frame = javax.swing.JFrame.new("Window") # Creating a Java JFrame label = javax.swing.JLabel.new("Hello") # We can transparently call Java methods on Java objects, just as if they were defined in Ruby. frame.getContentPane.add(label) # Invoking the Java method 'getContentPane'. frame.setDefaultCloseOperation(javax.swing.JFrame::EXIT_ON_CLOSE) frame.pack frame.setVisible(true) У кого руби нет, стоит его доставить, хотя бы просто чтобы увидеть, как это выполнится. Насколько прозрачно использование даже графических явовских библиотек. Просто паразительно. и главное ничего не надо донастраивать. Просто пиши на ява-классах прям где-нибудь в середине рубивского кода и все.
Рэйлс кстати тоже для JRuby пишут. Так что можно будет писать сайт и использовать эти фокусы внутри сайта.
alexey_baranov Всё это конечно можно, но требования к серверу получаются выше, если это хостинг - то намного выше. А php очень легкий. Поэтому он будет еще долго использоваться для сайтов на sahred хостинге, а таких сайтов - большинство. Да, постепенно развиваются 2.0, но все больше человек хотят под свой блог отдельный сайт, все больеш становистя сайтов-визиток малых фирм и т.д. и т.п. которым надо недорого и просто. Да и крупных проектов на PHP хватает.
[vs] да, наверное, так и будет. а я кстати уже с руби передумал. моя интуиция мне говорит, что руби устарел, не успев толком родиться. его похоронит groovy. Это тот же рубипитон, только для работы с ява классами ИЗНАЧАЛЬНО. это всем манда пришла! потенциал у него колоссальный. кстати уже есть groovy rails сами понимаете для чего, который был написан под впечатлением от обычного рэйлс. Груви тоже поддерживается нетбинсом. И уже поддерживается некоторым софтом и тулсами. Конечно, ява- это вам не руби какой-то! печально, но руби, такой хороший язык, который мог бы иметь долгую славную историю, еще не став популярным, уже в начале своего конца. Все что останется от руби в истории- это что он лег в основу груви. Скорее всего груви+ява теперь будут как 20 лет назад С++ и ассемблер. То есть все будет писаться на груви, но самые узкие места по прежнему на яве. Драйвера всякие, оси, субд ну и т.п. с руби-то я колебался. стоит не стоит? что там с библиотеками? никто не знает. даже сами рубисты. что с поддержкой? очень мало популярен. почему? может питон? не так просто принималось решение. и как теперь я понимаю к лучшему. а с груви все просто. тут и раздумывать нечего. на данный момент у него даже примерно нет равных альтернатив. и в ближайшем времени их не будет. с пыхом, как- то сравнивать язык не поворачивается.
Если говорить уж о Java, то у PHP тоже есть Java bridge и можно напрямую работать с Java библиотеками. Причём в Zend Studio даже auto-complete сделан для этого дела.
Psih PHP: <?php use java\lang\String as JString; use java\lang\ArrayList as JList; class String extends JString { function toString () { return "hello " . parent::toString(); } } $str = new String("Java"); $list = new JList(); $list->add (java_closure($str)); $list->add ("from PHP"); $ar = java_values ($list->toArray()); var_dump($ar); ?> =>array ["hello Java", "from PHP"] Не знал такого про пхп. Раньше бы впечатлило. Это очень большой плюс. Жаль только, что это не официальная линия. И еще жаль, что не попробовал ни разу зенд студию. похоже она все-таки не зря стоит денег.
Кстати сходу, как в руби, примерчик не заработал. Наверное нужны всякие установки и настройки. Ну и опять же, зная пых, можно предположить, что будет изучение чужих багов и способов их обойти.
презентация про некоторые фишки Груви. флопик, сравни ее пожалуйста с рубивскими. кто сильнее? http://onestepback.org/articles/groovy/ некоторые штучки оттуда, которые меня больше всего поразили: это например код бэнчмарка Код (Text): benchmark = { closure | start = System.currentTimeMillis() closure.call() now = System.currentTimeMillis() now - start } delta = benchmark { Thread.sleep(10000) } println "The command executed in ${delta} milliseconds" а это итераторы. очень удобно Код (Text): * list.each { println it} o Iterate over each element of a collection. * list.collect { it * it } o Collect a set of values for a new list * list.findAll { it > 50000 } o Select a subset of a list that passes a certain criteria. * list.find { it == 50000 } o Return the first element that passes a certain criteria. * list.every { (it % 2) == 0 } o Return true if every member of a list passes a criteria * list.any { (it % 2) == 0 } o Return true if any member of a list passes a criteria а это стандартный класс xml-генератора, в этом примере он по названию метода создает элемент xml Код (Text): import groovy.xml.* builder = new MarkupBuilder() names = ["Dave", "Rob"] emails = [ "jim@weirichhouse.org", "jweirich@one.net", "jimweirich@yahoo.com" ] builder.person() { name() { first("Jim") middle("Nolan") last("Weirich") } for (e in emails) { email(e) } siblings() { for (x in names) { name(x) } } } получается вот что Код (Text): <person> <name> <first>Jim</first> <middle>Nolan</middle> <last>Weirich</last> </name> <email>jim@weirichhouse.org</email> <email>jweirich@one.net</email> <email>jimweirich@yahoo.com</email> <siblings> <name>Dave</name> <name>Rob</name> </siblings> </person> ну и конечно про скорость тест одного и того же кода: Код (Text): Java: 0.39000002 MicroSeconds per call Ruby: 99.5389 MicroSeconds per call Groovy: 919.0 MicroSeconds per call