LINUX.ORG.RU

Самый перспективный язык/технология для создания сайтов


0

3

Надеюсь тема не перерастет в холивар.
У меня есть опыт создания сайтов на пхп и перл cgi/fastcgi. Сейчас собираюсь писать сайт для себя и возник вопрос «Какой язык выбрать?».
Полазил в интернете и пришёл к выводу что в основном хвалят Ruby(ruby on rails) и javascript (node.js).
Мне хочется найти удобный язык программирования на котором будет приятно создавать сайты/таск менеджеры/веб интерфейсы к чему нибудь. Также у языка не должно быть проблем с регэкспами, подключением к MySQL/PostgreSQL/Oracle и 100% понадобится возможность работать с ImageMagick.
php и perl не рассматриваем так как их возможности/удобство я и так знаю.
Что можете посоветовать?

★★★★★

Последнее исправление: TDrive (всего исправлений: 1)
Ответ на: комментарий от red_eyed_peguin

А ты «чтобы было непохоже на других»?

Мне на привычность положить - я смотрю чего оно умеет и насколько это удобно. Привычный вид может быть говном - просто вследствии привычности - неосознанным.

r ★★★★★
()
Ответ на: комментарий от r

удобство есть частью привычность

тот же Ruby вобрал огромное число идиом общих мест и как следствие на нём многое удобно - как и если ты по какой либо не мэйнстимовской(ещё не устоявшийся как общее мнение) тему сформулировал себе своё мнение может оказатся что мудрый японец другого мнения и как следствие всё удобство Ruby в общих местах сочетается с мировозрением его автора в остальном.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

Может иметь место обратное, где люди не пытались осмыслить некую удобную концепцию, а делали привычно только удобнее. Результаты этого - go и d.

r ★★★★★
()
Ответ на: комментарий от Hertz

Какие альтернативы кроме жабаскрипта существуют для клиентской стороны?

vbscript

wxw ★★★★★
()
Ответ на: комментарий от r

Мне на привычность положить

Вот это понты %)

привычно только удобнее. Результаты этого - go и d.

По-моему, ты не пытался глубоко разобраться ни в том, ни в другом.

tailgunner ★★★★★
()
Ответ на: комментарий от r

Результаты этого - go

CSP, классы типов, исключения в стиле panic-defer-recovery, да и просто defer — все эти концепции непривычны рядовому программисту, но удобны.
Так что насчёт го ты не прав.

quantum-troll ★★★★★
()
Ответ на: комментарий от r

d - монстр имени Александреску и расхождение между d1 и d2 пример эволюции его взглядов.

c go ситуация отличается go скорее это C сегодня

т.е редукция уже имеющихся в различных источниках (языки и их среды) в одно компактное с некоторым числом компромисов с привычностью ( например while (в си польностью лишний ибо for(usl;;) ) в отличии от do{}while - однако «люди не простят» и предпочли while(usl){} чем for(usl;;){} и тем более if(usl)do{}while(usl)//что совсем попахивает структурным безмозглием.

с го думаю пытались осмыслить и не одно десятилетие (у Дейктсры ужо в середине 60х про всяческое csp и желательность очевидности между текстом(сценарий-программа) и исполнаяемым рантайм обьектом и его состоянием )

qulinxao ★★☆
()

Тред не читал, но скажу, что нет Ruby, кроме Ruby и Ruby On Rails фреймворк его.

Ginki
()
Ответ на: комментарий от tailgunner

Вот это понты %)

Ну да - я привычно за последние 3 года писал на жабе, скале и эрланге:) До сих пор ищу привычный if :)


По-моему, ты не пытался глубоко разобраться ни в том, ни в другом.

Только не говори мне что го это не попытка сделать Си только SMPшный, а D это не попытка сделать C++ только с человеческим лицом:)

r ★★★★★
()
Ответ на: комментарий от quantum-troll

ппц. заисключением defer - многие могут сказать чё откуда в го

defer - вроде прямо предложение всплывшее в рассылке go-nuts.

а рядовой программист это нечто столь же абстрактное как и народ.

дай ерланг в руки рядовом программисту и через «день» одним рядовым меньше

qulinxao ★★☆
()
Ответ на: комментарий от r

я привычно за последние 3 года писал на жабе, скале и эрланге:) До сих пор ищу привычный if :)

Скала сделана так, чтобы быть привычной Ява-прогеру, Эрланг будет знаком тем, кто знает Пролог. И в чем твой пойнт?

По-моему, ты не пытался глубоко разобраться ни в том, ни в другом.

Только не говори мне что го это не попытка сделать Си только SMPшный

Go - это CSP, D - это CTFE. Что из этого привычно среднему Си- и Си++-кодеру?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

и он тоже. если ознакомились с Хоаром ознакомтесь и с Дейкстрой

в части последовательный процесс затем их комуницирование и виды коммутации

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

например while (в си польностью лишний ибо for(usl;;) )

Между while и for есть разница и подозреваю что в откомпилированном виде они будут выглядеть по разному. Тем более запись for(usl;;) выглядит криво.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от JFreeM

java, конкретно, очень легковесный стек технологий java ee 6

  • Java Platform, Enterprise Edition 6 (Java EE 6) JSR 316
  • Web Services Technologies
    • Java API for RESTful Web Services (JAX-RS) 1.1 JSR 311
    • Implementing Enterprise Web Services 1.3 JSR 109
    • Java API for XML-Based Web Services (JAX-WS) 2.2 JSR 224
    • Java Architecture for XML Binding (JAXB) 2.2 JSR 222
    • Web Services Metadata for the Java Platform JSR 181
    • Java API for XML-Based RPC (JAX-RPC) 1.1 JSR 101
    • Java APIs for XML Messaging 1.3 JSR 67
    • Java API for XML Registries (JAXR) 1.0 JSR 93
  • Web Application Technologies
    • Java Servlet 3.0 JSR 315
    • JavaServer Faces 2.0 JSR 314
    • JavaServer Pages 2.2/Expression Language 2.2 JSR 245
    • Standard Tag Library for JavaServer Pages (JSTL) 1.2 JSR 52
    • Debugging Support for Other Languages 1.0 JSR 45
  • Enterprise Application Technologies
    • Contexts and Dependency Injection for Java (Web Beans 1.0) JSR 299
    • Dependency Injection for Java 1.0 JSR 330
    • Bean Validation 1.0 JSR 303
    • Enterprise JavaBeans 3.1 (includes Interceptors 1.1) JSR 318
    • Java EE Connector Architecture 1.6 JSR 322
    • Java Persistence 2.0 JSR 317
    • Common Annotations for the Java Platform 1.1 JSR 250
    • Java Message Service API 1.1 JSR 914
    • Java Transaction API (JTA) 1.1 JSR 907
    • JavaMail 1.4 JSR 919
  • Management and Security Technologies
    • Java Authentication Service Provider Interface for Containers JSR 196
    • Java Authorization Contract for Containers 1.3 JSR 115
    • Java EE Application Deployment 1.2 JSR 88
    • J2EE Management 1.1 JSR 77
  • Java EE-related Specs in Java SE
    • Java API for XML Processing (JAXP) 1.3 JSR 206
    • Java Database Connectivity 4.0 JSR 221
    • Java Management Extensions (JMX) 2.0 JSR 255
    • JavaBeans Activation Framework (JAF) 1.1 JSR 925
    • Streaming API for XML (StAX) 1.0 JSR 173

Это что, «легковесный стек»? Reference implementation, который весит больше 100 мегабайт — это «легковесный стек»? А если подумать головой? Это — набор баззвордов и bloatware. В Лиспе это все реализуется тривиально и по мере надобности, и никому не приходит в голову придумывать на каждый чих очередной звонкий маркетоидный термин.

отличнейший ОО язык

Такое может заявлять только тот, кто не знаком с CLOS или хотя бы со Smalltalk.

с статической типизаций

Это такая отмазка для тех, кто не осилил реализовать современный, мощный, динамический язык? «Мы не смогли сделать нормальный язык, но давайте назовем это фичей.» Из-за этого программистам на недоязыках приходится запихивать свои программы в прокрустово ложе статики. В то же время программисты на современных мощных языках от этого избавлены.

огромным инструментарием для любых задач

Вы хотели сказать — набором костылей, функциональность которых доступна в Лиспе «из коробки», потому что они встроены в сам язык?

обладающей одной из лучших документаций по любому аспекту

Лучшая документация по любому аспекту — это сам код. Разумеется, когда он написан на нормальном языке типа Лиспа, а не на уродливых С++-переростках.

соответствующий стандартам, принятым совместо апач фоундейшн, айбиэм, оракл, ред хат и прочими крупными игроками опесоурс рынка

Вы хотели сказать — гешефтмахерами, чья позиция направлена на сознательное подавление современных мощных языков в пользу прибыли от своих убогих legacy-решений? И чему тут удивляться?

anonymous
()
Ответ на: комментарий от qulinxao

если ознакомились с Хоаром ознакомтесь и с Дейкстрой

Название работы Дейкстры, посвященной CSP - в студию.

tailgunner ★★★★★
()
Ответ на: комментарий от r

ну и в чём затруднение позитивного принятия факта что go (в 2012) это многоголовость добавленая к текущим общеизвестным(но не всё общераспространённом) общим местам?

как и C(в начале 70х) был во многом упрощением(излишним с точки зрения каждого языка источника) и популяризация чужих идей ( таже адрессная арифметика указателей)

т.е сейчас го выполняет роль С(тех лет) появление переносимого ассемблера - Гугль целенаправлено это и творит.

qulinxao ★★☆
()
Ответ на: комментарий от quantum-troll

Так что насчёт го ты не прав.

Зато я прав что они взяли Си - и запихнули это все туда. может кто-то и радуется отзывам типа «наконец-то нормальный си++», но такая похвала как-то уныло звучит. Они в тутореале 5 страниц распинаются по разным вариантам цикла for что заслуживает отдельного фейспалма.

И да в го не классы типов а структурный полиморфизм. Ну и конечно - зачем нам параметрический полиморфизм - это лишнее в статическом языке.

r ★★★★★
()

По теме. Открой для себя Common Lisp. Для тебя будет откровением то, сколько времени тратят code monkeys на реализацию того, что в Лиспе делается за считаные минуты и абсолютно тривиально. Выбор за тобой — оставаться ли бездумным адептом убогих недоязыков, или же открыть для себя неограниченную мощь Лиспа.

Правда, для этого придется слегка пошевелить мозжечком.

anonymous
()
Ответ на: комментарий от TDrive

разница которую компилятор и предназначен скрывать for(usl;;) так же криво как и идиома for(;;) которая известна со времённ первоСиЮниксов.

речь о удобстве для прогера поэтому while в си есть а alwaysdo{} «убрали»(видимо из страха что любители goto замутят страшный конечный автомат с неочевидным графом переходов)

qulinxao ★★☆
()
Ответ на: комментарий от r

зачем нам параметрический полиморфизм

Не знаю, какие проблемы возникли у тебя с параметрическим полиморфизмом в го.
Слабость го относительно хаскеля — отсутствие алгебраических типов.
---

Зато я прав что они взяли Си

Ты хотел сказать «они взяли Паскаль»?

quantum-troll ★★★★★
()
Ответ на: комментарий от tailgunner

Скала сделана так, чтобы быть привычной Ява-прогеру

C# привычен ява-прогеру. А вот скала не очень так.

RedPossum ★★★★★
()
Ответ на: комментарий от tailgunner

Скала сделана так, чтобы быть привычной Ява-прогеру,

Она нефига не привычна ява прогеру:) Явапрогер взглянувший на коллекции скалы умрет от удивления:)

Что из этого привычно среднему Си- и Си++-кодеру?

Все остальное:) Они ввзяли то что хотели изменить и запихнули в привычную сишечку/++. Вместо того чтобы подумать, а как бы создать соответствующий этому современный язык. Из-за этого ИМХО эти языки никогда не станут скольнибудь мейнстримными - они устаревшие еще при рождении с несколькими модерновыми фичами. Тиоба со мной согласна - го скатился с 15 места при появлении на 66е.

r ★★★★★
()
Ответ на: комментарий от quantum-troll

классы типов не встречались в императивных языках до го

Сигнатуры в GNU C++.

tailgunner ★★★★★
()
Ответ на: комментарий от qulinxao

ну и в чём затруднение позитивного принятия факта

В том что он дизайнился с распространенным заблуждением 20ти летней давности на тему того что чтобы язык был принятым быдло^H обычным программистом мы (гении) должны его сделать вариантом сишника. Такую же хрень (глядение свысока) можно встретить например в жабьих рассылках, где всякие ораклоиды смотрят на комьюнити как на идиотов, и соответственно дизайнят язык. С одной стороны я допускаю что не все хотят хаскеля. С другой стороны я сомневаюсь что этим людям нужен go. Идея вроде «пересадить обычного ПХПешника на новый мегаязык запихнув туда типы выших порядков а чтобы он понял сделаем язык похожим на ПХП» утопична в принципе. Тем кому нужны типы высших порядков они нужны потому что ПХП их уже достал. А те кому он нравится - типы высших порядков - ненужны. Доказано вегетарианскими гамбургерами в макдоналдсах.

r ★★★★★
()
Ответ на: комментарий от r

Она нефига не привычна ява прогеру:)

Ты расстраиваешь Одерского.

Они ввзяли то что хотели изменить и запихнули в привычную сишечку/++

(пожимая плечами) Ты сам себе противоречишь. Если Go и D - это привычные Си/Си++, то Scala - это привычная Ява.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ты расстраиваешь Одерского.

Его уже давно этим расстроили:) Есть даже эпичный тред про уровни квалификации скалеров в его участием по критериям «кто вообще способен вкурить че это написано»:)

Ты сам себе противоречишь.

Где?

r ★★★★★
()
Ответ на: комментарий от tailgunner

К стати про компилятор скалы сам одерский жаловался что его понимают полтора человека даже в теории, не то что разбираться в коде.

r ★★★★★
()
Ответ на: комментарий от r

В отличии от всяких D, го похож на си чуть больше, чем ruby похож на elffel.

quantum-troll ★★★★★
()
Ответ на: комментарий от r

Ничто не мешает тебе сделать нечто вроде func foo(a, b interface{}) ...
Может, это не полиморфизм высшего порядка, но всё-таки.

quantum-troll ★★★★★
()
Ответ на: комментарий от tailgunner

такс есть Хоар он сконструировал теорию CSP при решении общезначимой задачи - как организовать толпу исполнителей.

в русле по которому Хоар и пришёл к устью CSP(http://www.ssd.sscc.ru/chair/files/hoar/hoar.pdf) между вселенским истоком42 и местом откуда пошёл Хоар был Дейкста с выше указаной сылкой ну и посмотри раздел благодарности csp хоара.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

в русле по которому Хоар и пришёл к устью CSP(http://www.ssd.sscc.ru/chair/files/hoar/hoar.pdf) между вселенским истоком42 и местом откуда пошёл Хоар был Дейкста с выше указаной сылкой ну и посмотри раздел благодарности csp хоара.

А, так ты просто норкоман...

tailgunner ★★★★★
()
Ответ на: комментарий от JFreeM

vsl, ты?

Как будто Луговский — единственный трезвомыслящий профессионал, ага.

anonymous
()
Ответ на: комментарий от r

Есть даже эпичный тред про уровни квалификации скалеров в его участием по критериям «кто вообще способен вкурить че это написано»:)

Ну так об этом и речь. На D тоже можно куячить как в Си++-стиле, так и в... ХЗ как назвать массированное CTFE. И привыкший к Си++ его не поймет.

tailgunner ★★★★★
()
Ответ на: комментарий от r

так С на этом и был построен отчего горизонт неправильности ограничен 20 летием? не от того ли что первый твой/ваш прог язык (С? или что бэйсик паскаль) и был принят как ухты_вон_оно_как.

язык С - целенаправленно не имел вложеных функций(ну ломало людей разбиратся с дисплеями или ещё чем) при том что Ритчи вроде как магистр по матану. т.е на момент своего появления С - не был фронтиром . переносимый ассемблер .

и сейчас Го - тот же ассемблер . где тут илитство?

qulinxao ★★☆
()
Ответ на: комментарий от tailgunner

И привыкший к Си++ его не поймет.

Ты немного не понял о чем я говорю. Я говорю о порочной практике дизайнить языки способом «возмем привычный и исправим пару костылей до некостыльного состояния + пару фичек добавим». Александреску делал D как «нормальный c++». То что «нормальный с++» делать не нужно - ему в голову не пришло. Пайк делал Го как «современный си». То же самое.

r ★★★★★
()
Ответ на: комментарий от quantum-troll

абзац про абстрактность рядового программиста

про различность /схожесть модели многоголовости ни слова.

qulinxao ★★☆
()
Ответ на: комментарий от r

Ты немного не понял о чем я говорю.

Речь шла о том, что привычность для тебя не играет никакой роли, но потом ты перескочил на другую тему.

Ты немного не понял о чем я говорю. Я говорю о порочной практике дизайнить языки способом «возмем привычный и исправим пару костылей до некостыльного состояния + пару фичек добавим»

Таким образом сдизайнили Си (и Си++, ага). Дело не о дао дизайна, а в «right man^Wlanguage, right place, right time».

tailgunner ★★★★★
()
Ответ на: комментарий от qulinxao

так С на этом и был построен отчего горизонт неправильности ограничен 20 летием?

Популяризаторами идеи выступил Гослинг-сотоварищи. Но если 20 лет назад это какой-то смысл имело - то сейчас не имеет никакого. А этих старых жабщиков в рассылках почитать - так такое впечатление что сейчас 92 год.

и сейчас Го - тот же ассемблер . где тут илитство?

"...did not want to deviate too much from what developers already knew because they wanted to avoid alienating Go's target audience." (C) Rob Pike.

Эта песня звучит уже 20 лет.

r ★★★★★
()
Ответ на: комментарий от r

посмотри на go fix одно это стоит многого

т.е если на каждую версию компилятора у них есть модель то и апгрейд всё чаще возможен полностью автоматическим при патченге модели исполнения.

qulinxao ★★☆
()
Ответ на: комментарий от r

это песня звучит с 1968 и лозунга конференции под эгидой NAТО: «мы в дифиците числа программистов(в терминах 1968) к числу и сложности наличных задач которые мы знаем могут быть решены имеющимися вычислительными мощностями при наличии адекватного задачам матем.обеспечения» в просторечии «КРИЗИС ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

отчего 20 лет то вами фиксируется а более ранее - прям рай на земле?

qulinxao ★★☆
()
Ответ на: комментарий от tailgunner

Речь шла о том, что привычность для тебя не играет никакой роли, но потом ты перескочил на другую тему.

Неа. Реч шла о том что привычность не есть определяющим фактором. А там где она становится - рождаются языки неспособные занять нишу - вроде D или Go. Закоренелым C++никам D не нужен, а newcomer'am он нафиг не сдался потому что на сегодняшний день он не имеет нужных фич (вроде тех же лямбд), а то что он лучше плюсов - побарабану. Точно так же и с go - закоренелым сишникам он не особенно нужен, а все остальные на 5 вариантов for-чтобы-сишникам-привычно смотрят как на идиотизм.

Дело не о дао дизайна, а в «right man^Wlanguage, right place, right time».

Правильно. Про то я и говорю - они не там не здесь. Жабу или Шарп они не вытеснят, а остальной аудитории в таком виде они непривлекательны.

r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.