LINUX.ORG.RU

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


0

3

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

★★★★★

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

Ну ты действительно хочешь об этом поговорить?

Напиши мне пример джоина, который, по твоему мнению, не реализуем при помощи NoSql

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

Напиши мне пример джоина, который, по твоему мнению, не реализуем при помощи NoSql

Реализуем, конечно. Вопрос трудозатрат.

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

Неудивительно, что у многих на них аллергия.

Не вопрос, для неженок-эстетов мы другую работу найдем.

Некрасивая винтовка? Бронежилет не гармонирует с каской? Будешь мыть сортиры.

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

Если для лисперов програмирование — армия, то их поведение ВНЕЗАПНО становится понятным
Зачем мучиться с этим вашим «языком всего», если можно взять несколько специальных и успешно решить задачу?

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

Зачем мучиться с этим вашим «языком всего», если можно взять несколько специальных и успешно решить задачу?

Потому что задач очень много, а языков очень мало. Под каждую задачу надо свой язык создавать.

Лисп - это не «язык всего», это язык для создания языков.

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

s-exp — те же иксэмэли, только короче.

А ещё без эффективных оптимизированных валидирующих DOM-, push- и pull-парсеров, без XPath, XLink, XQuery, XUpdate, XSLT, XSL-FO, XML Security, XSD-схем всего остального, ага.

Неудивительно, что у многих на них аллергия.

Аллергия на недотехнологию? Что не так?

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

Который не позволяет получить ничего, кроме расширенного лиспа?

Сейчас он тебе начнёт втирать про reader macros. И почему-то умолчит о том, что для новоявленного DSL надо писать не только интерпретатор/компилятор, но и редактор, отладчик, профайлер, рефакторинг и всю остальную обвязку.

Но мы ему напомним.

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

(иначе его компилятор был бы слишком сложным. И медленным)

Мифы легенды, часть первая.

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

то есть по твоему индексированные операции над массивами данных имеют что либо общее с конкурентной обработкой? Именно по причине возможностей параллелизма этот цикл вообще надо было бы выпилить с концами и сделать работу со структурами данных допускающую параллелизм через fold/map/filter.

И причем тут функциональщина к параметрическому полиморфизму? Сравнению по образцу? ADT?

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

то есть по твоему индексированные операции над массивами данных имеют что либо общее с конкурентной обработкой? Именно по причине возможностей параллелизма этот цикл вообще на

ну что за экстремизм

кроме массово паралельных ест же и много"нитевые"(здесь нить - конкретно отдельный поток управления) и сейчас в связи с тем что (ужо как 10лет? частоты почти не растут) процы стали многочтотам так просто

и кстати циклы не только для работы с индексными перемеными и следовательно колекции

цикл это ещё и слежение (за событиями на датчиках и активация соответс..)

наряду с обработкой гигатон даты есть и автоматизация процессов :)

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

​> foldх
​> map
​> filter
​> функциональщина
​> параметрический полиморфизм
​> сравнение по образцу
​> ADT

Баззворды такие баззворды.

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

Мифы легенды, часть первая.

Либо это реализуется как конструкция языка, что усложняет язык (а создатели даже не сделали ключевое слово while, так как это усложняет язык), либо как функция высшего порядка, что требует оптимизации.
Ты размер исходников GHC в последнее время видел?

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

В каком месте го не умеет параметрический полиморфизм, скажи же мне?

Сравнению по образцу?

Даже РЕФАЛ называют функциональным ЯП.

ADT?

http://golang.org/doc/go_faq.html#variant_types

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

Который не позволяет получить ничего, кроме расширенного лиспа?

Который позволяет расширяться до любого языка. Пример - CLOS.

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

Сейчас он тебе начнёт втирать про reader macros.

Не угадал.

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

и кстати циклы не только для работы с индексными перемеными и следовательно колекции

for x to y легко выражается через range.

наряду с обработкой гигатон даты есть и автоматизация процессов :)

Я вижу что эта смпишная сишка пока почти в три раза медленнее жабы. В связи с этим возникает очевидный вопрос....

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

Посмотри в словаре что такое buzzword.

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

Ты размер исходников GHC в последнее время видел?

Размер исходников GHC нерелевантен. Haskell - это Си++ функциональных языков.

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

Подозреваю, так даже forth умеет. В стековом стиле.

Подозревать - не мешки ворочать. Ты для начала enum покажи.

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

либо как функция высшего порядка, что требует оптимизации.

Все требует оптимизации.

В каком месте го не умеет параметрический полиморфизм, скажи же мне?

Покажи мне в каком месте он его умеет. Я - не нашел,

Даже РЕФАЛ называют функциональным ЯП.

И что?

http://golang.org/doc/go_faq.html#variant_types

http://www.scala-lang.org/node/107

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

да .ок . отменим циклы . а уж если нам нужен повтор(ну для повтора состояния - а не распаралеливаемого действия разными данымы «одного типа») то сдуем быль и воспользуемся рекурсией (конечно скажем что концевую рекурсию жрёть компилятор) - ну и чё?

там. нет. смп. там есть промоины по котором перемещаются типизированые хрени для синхронизации РАЗНЫХ Gрутин - оки?

.

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

http://rosettacode.org/wiki/Enumerations#Forth
Ну вот как тривиальный вариант.
---
r

Покажи мне в каком месте он его умеет. Я - не нашел

http://golang.org/pkg/container/list/#List.InsertAfter
Список может содержать данные любых типов.

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

блин индексная переменая и колекция это «синонимы»( как хэш подобен индексному массиву но область определения не натуральные а чё задали при обьявления хэша/мэпа/асоц_масива)

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

повтор также и эвентлуп

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

Если совсем не боишься приключений, то попробуй Scala (playframework) + MongoDb (Salat extension), хорошие программисты на этих технологиях сегодня очень в цене.

А вот об этом поподробнее пожалуйста. На моей памяти только вакансии посвященные биржевому трейдингу, отчетным системам или Data Mining'у.

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

- ну и чё?

Дело не в том «отменим» или нет - а в том какой - он. Например посмотри что такое for в скале, и какие он дает возможности.

- оки?

Для чего это сделано?

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

Список может содержать данные любых типов.

Это как раз отсутствие параметрического полиморфизма. Это какой был первый C# и жаба до 1.4. О чем я и говорю.

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

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

Параметрический полиморфизм — функция ведет себя одинаково для аргументов разных типов. Пример — функция «положить элемент в контейнер».
Если у тебя какой-то особый параметрический полиморфизм — расскажи мне.

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

блин индексная переменая и колекция это «синонимы»

Чего, чего?

повтор также и эвентлуп

event loop выражается через loop не от того что так надо - а потому что механизмов других нету. Ему нужна семантика типа сигнал-обработчик.

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

какой for пофиг forит ну и ладушки.

ДЛЯ АССИМЕТРИЧНОГО МУЛЬТИПРОГРАММИРОВАНИЯ

для реализации сетей взаимодействующих исполнителей на одной железке (с возможными прокси к другим железкам) - погрузили Plan9 на уровень языка.

для написания задач использующих Асиметричное мультипрограммирование что бы разброда и шатание было меньше(будёт но меньше чем без) впилили CSP имени Хоара(Дейкстра с этому шёл начиная с THE)

современные ос - предоставляют свой апи для реализации мультипрограммирования

Го - так сформулирован что вполне поедет и на голом железе ( в сырцах у старых версий было как его сбилдить) т.е Го - если взлетит то через года 2-3 если наберёт критическую массу людей которые Го предпочтут .

qulinxao ★★☆
()

А мне кажется, php нас всех переживёт, как Бэйсик пережил все серьёзные языки своего времени из-за своей простоты и низкого порога теоретической подготовки.

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

блин астранафтика.

у вас в низу железка фон-неймана там есть jmp ( + у современых сall (jmp c помещением следующего на стек) + у некоторых loop)

так ка чистый jmp - приведит к содому в императившене ограничелись повтором и экстреными выходами/продолжениями в нём. и усё.

забудте про for , обсудим арифметический if?

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

TDrive

Где сейчас используют Бэйсик?

Вы с какой планеты прилетели? Как утверждает Википедия, сейчас 59% программистов под .NET Framework в качестве своего основного языка используют Visual Basic.

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

Параметрический полиморфизм — функция ведет себя одинаково для аргументов разных типов.

Параметрический полиморфизм - функция _поли_морфна относительно типа параметра функции.

nth[T](x:list[T], i:int).....

var i:int = nth(list(1,2,3), 2) // 2:int
var s:string = nth(list(«a»,«b»,«c»), 2) //«b»:string

В го же будет:

l := list.New()
l.PushFront(1)
var a int = l.Front()

cannot use l.Front() (type *list.Element) as type int in assignment

Превед «жаба двадцатого века».

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

т.е Го - если взлетит то через года 2-3 если наберёт критическую массу людей которые Го предпочтут .

Не взлетит.

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

так ка чистый jmp - приведит к содому в императившене ограничелись повтором и экстреными выходами/продолжениями в нём. и усё.

jmp/call/loop должен делать компилятор а не люди. Вот и вся астронавтика.

забудте про for , обсудим арифметический if?

Зачем?

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

Ну вот как тривиальный вариант.

Сойдет.

Теперь у тебя есть из чего выбирать: низкоуровневый Форт и высокоуровневый Лисп.

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

Ещё Retro, Factor и некоторые другие. Но это в случае, если действительно требуется подобное метапрограммирование, что редко.

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

cannot use l.Front() (type *list.Element) as type int in assignment

Ты наверное не заметил, но Front() возвращает *list.Element, а не interface{}.
Ожидаемое тобой поведение реализует heap.Pop() или *list.Remove().
И да, язык поддерживает вывод типов, можно писать a := l.Front(), почти как в хаскеле.

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

Ожидаемое тобой поведение реализует heap.Pop() или *list.Remove().

cannot use l.Remove(l.Front()) (type interface {}) as type int in assignment: need type assertion

Дада - вполне ожидаемое мной поведение:)

И да, язык поддерживает вывод типов, можно писать a := l.Front(), почти как в хаскеле.

Мне не надо выведенный тип - я хочу int.

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

где ты видиш ярд индусов которые воспитаны в ни императивности? если инструкции к бытовой технике пишут не фактами и правилами вывода

а для Цель сделайте : «тут пошаговый алго»

забудте про for , обсудим арифметический if?[/qoute] Зачем?

c той же целью что и «for» - раскажи как не нужен арифметический if

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

Ещё Retro, Factor и некоторые другие.

enum в студию.

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

Ты даже школосайт без метапрограммирования не сделаешь. Вся эта шумиха вокруг XML, ORM и «фреймвёркоф» как раз отсюда идет.

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

XML

Всего лишь язык разметки (всего подряд, специальные языки не все осиливают). Лисперы не любят отделять код от данных?

фреймвёркоф

Ну можно писать с нуля, вместо того, чтобы взять уже готовый каркас.
Метапрограммирование тут вряд ли поможет (хотя если у тебя есть наглядный, выразительный пример...).

enum в студию.

Гуглить за тебя не особо интересно, особенно когда практически любой конкатенативный язык может enum.
Но вот для Retro: http://code.google.com/p/retro-language/source/browse/library/enum.rx

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

Гуглить за тебя не особо интересно

Это не тот enum, по условию именованный нужен. Но не в этом суть.

Суть в том, что ты судишь о том, чего не знаешь и что никогда не пробовал. Всё это для тебя - странные и ненужные фичи. И конечно же, ты абсолютно не понял, причем тут XML, ORM и фреймворки.

Это называется парадокс Блаба.

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

парадокс Блаба

В отличие от конструкций языков, сравнения — наглядны. Всем известный некорректный пример qsort для хаскеля всё-таки даёт понять программисту на си, что в чём-то его язык таки менее мощный.
Хотя незнание конкретных задач может препятствовать, но этот пробел восполним.

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

где ты видиш ярд индусов которые воспитаны в ни императивности?

Скажи привет дотнеотвским коллекциям:)

арифметический if

Что такое арифметический if? if 0?

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