Jump to content
  • 0

Выбор серверного языка


DivMan
 Share

Question

Recommended Posts

  • 0

Шаблоны в PHP нативные, так что они стократ круче

и не оспоришь. Так и есть.

В этом смысле совсем непонятно, когда на php используют сторонние шаблонизаторы.

Иногда такие финты с фильтрами на джанге делаешь, что просто жесть.

Чаще всего джанговских шаблонов более чем достаточно. Финты с фильтрами? Не проще ли тогда свой фильтр или тэг сделать?

Но вообще есть же jinja2. А ещё можно на django делать только бэкэнд, rest-api, а всю красоту на клиенте творить.

Link to comment
Share on other sites

  • 0
Финты с фильтрами? Не проще ли тогда свой фильтр или тэг сделать?

Ну я это и имел в виду. Надо какую-то мелочь сделать — городишь темплейтфильтр или темплейттегтег. Jinja вообще не панацея.

Link to comment
Share on other sites

  • 0

jinja вообще на любителя, если уж на то пошло.

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

А вот про собственные тэги и фильтры — удивительно. Их же весьма просто и удобно делать. Если тэги оказываются сложными, то тут большой-большой вопрос, всё ли в порядке с архитектурой приложения.

Link to comment
Share on other sites

  • 0

Чуть  выше ради сравнения были простыни кода. Не очень понятно наверное получилось, поскольку очень уж длинно.

Можно попробовать маленькие короткие задачки.

 

Вот например, в одном из проектов недавно нужен был метод, возвращающий случайный год с 1789 по 1825. Дважды нужен был, потому что код не изоморфный.

 

JS:

const START_YEAR = 1789,      END_YEAR = 1825;class EventPool extends Material {  …  get randomYear() {    return Math.Round(Math.random * (END_YEAR - START_YEAR)) + START_YEAR;  }  …}

Python:

import randomclass EventPool(Material):    START_YEAR: 1789    END_YEAR: 1825    …    def get_random_year(self):        return random.choice(range(START_YEAR, END_YEAR))

то же на каком-нибудь php было наверное примерно так:

$START_YEAR = 1789;$END_YEAR = 1825;class EventPool extends Material {    …    public function getRandomYear()    {        return(            rand($START_YEAR, $END_YEAR);        );    }}

или на ruby:

class EventPool < Material  @START_YEAR = 1789  @END_YEAR = 1825  …  def getRandomYear    rand @START_YEAR..@END_YEAR  endend

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

Но у php и ruby на мой взгляд синтаксис избыточен.

 

И всё равно JS победит из-за возможности делать код изоморфным.

Link to comment
Share on other sites

  • 0
Но у php и ruby на мой взгляд синтаксис избыточен.

 

Не вижу у php ничего избыточного:

class EventPool extends Material {    const START_YEAR = 1789,          END_YEAR = 1825;    function getRandomYear()    {        return rand(self::START_YEAR, self::END_YEAR);    }}

ЗЫ а твой пример на php даже и не рабочий =)

Link to comment
Share on other sites

  • 0

избыточного в php — туча синтаксического мусора, унаследованного от разработки 1969 года.


Кстати, wwt, вы же php, в отличие от меня, знаете?

Выше пример решения простой типовой задачи на php. Он точно рабочий, скопирован из действующего кода.

Но по мне так это запредельный говнокод.

Вот в нём что не так? Почему так?

Link to comment
Share on other sites

  • 0

Я вот чего не понимаю, кого не спроси все гнобят бедный php, но он почему то лидирует уже сколько и не собирается сдаваться. В чем подвох? Раз руби, питон и так далее "лучше" почему не переходить на них? Ведь все хотят инструмент лучше. Но почему то все пишут на php.

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

Edited by Нарек
Link to comment
Share on other sites

  • 0

Я вот чего не понимаю, кого не спроси все гнобят бедный php, но он почему то лидирует уже сколько и не собирается сдаваться. В чем подвох? Раз руби, питон и так далее "лучше" почему не переходить на них? Ведь все хотят инструмент лучше. Но почему то все пишут на php.

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

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

А с руби и питоном, всё только начинается. 

Link to comment
Share on other sites

  • 0
Выше пример решения простой типовой задачи на php. Он точно рабочий, скопирован из действующего кода. Но по мне так это запредельный говнокод.

 

PHP создавался чтобы работать с html. Но в наше время он от этого уходит, практически никто уже так не делает. Есть куча шаблонизаторов которые сделают внешний вид шаблонов и легко читаемым и красивым.

 

Я не сторонник спорить какой язык лучше особенно если эти языки не конкуренты друг другу.

 

 

А с руби и питоном, всё только начинается.

яб сказал продолжается =)) Они не вчера появились.

 

 

туча синтаксического мусора, унаследованного от разработки 1969 года.

 

Это не только минус, но и плюс. Обратная совместимость зачастую играет важную роль? Да и 96 года ты хотел сказать?

Link to comment
Share on other sites

  • 0
но он почему то лидирует уже сколько и не собирается сдаваться.

потому что более распространен. только и всего...

 

 

 

избыточного в php — туча синтаксического мусора

 

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

 

 

Вот в нём что не так? Почему так?

какой именно?)) вы там много привели =)  про Yii ?

Link to comment
Share on other sites

  • 0

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

А с руби и питоном, всё только начинается.

 Ошибаетесь. По части готовых решений в случае с питоном и руби всё очень и очень хорошо. Про php просто не знаю, но скорее всего тоже неплохо. Предполагаю, что паритет.

 

Я вот чего не понимаю, кого не спроси все гнобят бедный php, но он почему то лидирует уже сколько и не собирается сдаваться. В чем подвох? Раз руби, питон и так далее "лучше" почему не переходить на них? Ведь все хотят инструмент лучше. Но почему то все пишут на php.

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

Всё-таки есть, да. Да и подвоха-то особого нет, всё на поверхности.

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

 

А ещё есть такая штука, как порог вхождения.

Вспомните себя, когда только начинали интересоваться темой. Много всего, с какой стороны подойти — неясно. А тут легко и просто предлагают прямо в html писать <? echo "Hello World"; ?>, и оно работает. Неважно как, но работает! Что такое http? А чёрт его знает! MVC? Это три буквы, наверное матерные. А echo работает.

Чтобы написать хэлловорлд на том же питоне, нужно как минимум осилить сам питон, осознать, что есть http, понять, как работают сервера, одолеть wsgi, и только тогда получится вывести в браузер одну строчку. А как оформлять? Шаблонизаторы надо осваивать.

А php сам шаблонизатор. И инструменты типа MAMP есть, в которых достаточно одну кнопочку нажать, чтобы сервер запустился.

Ну а когда въехал во что-то одно, в этом же предпочитают и развиваться.

 

Меня в своё время отец научил критически воспринимать любую инфу. Есть php? Хорошо! Большинство сайтов на нём? Отлично! Миллионы мух не могут ошибаться. Но что ещё есть?

 

Вот в нём что не так? Почему так?

какой именно?)) вы там много привели =)  про Yii ?

да-да, именно это многокода на Yii2.

Link to comment
Share on other sites

  • 0

ну, как вам объяснить....  Yii во первых это тоже фреймворк. 
У меня нет с ним серьезных отношений, ввиду недостатка времени =)

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

Сейчас появляются новые фреймворки, можете если время будет ещё и с ними поработать для сравнения. 
 

с битриксами или UMI работали? )))  вот там да...   а в ворках не всё так страшно )))

Link to comment
Share on other sites

  • 0
с битриксами или UMI работали? )))  вот там да...   а в ворках не всё так страшно )))

В битриксе вроде ничего так, понять можно. Если не чистоплюйствовать, то годная штука. А вот юми не удалось победить :(

Link to comment
Share on other sites

  • 0
юми  не удалось победить

мне целая неделя понадобилась чтобы это сделать)) 

для мелких проектов он впринципе подойдет, а для средних и крупных - лучше не надо...  мало того что БД разрастается с околозвуковой скоростью, дак и XSLT шаблонизатор жрет ресурсы как Гомер Симпсон пончики) 

Я все это к тому, что вцелом не стоит судить о языке по чему то одному.... у php на самом деле полно минусов.... самый главный - в его скорости, но и тут зависит от много: от технологий оптимизаций, использование ускорителей, кэша и самое главное степени кривости рук разработчика)) особенно касается в запросах к БД...

 

Код и на RoR и на Python при особых талантах можно написать так, что он десятки секунд будет отрабатывать. А синтаксис - это в моем понимании уже на любителя. цеплять на этом внимание или нет...

Link to comment
Share on other sites

  • 0
Код и на RoR и на Python при особых талантах можно написать так …
 

 

ага, как по этому поводу говорят: писать на php можно на любом языке :)

Да, доводилось видеть чудеса =)

  • Like 1
Link to comment
Share on other sites

  • 0
писать на php можно на любом языке :)

 

Это даже не абстрактное понятие, а вполне реальное

<?php${'Моя переменная'} = 3;${'自定義變量'} = 2;function А_это_функция($a,$B){    return $a*$b;}echo А_это_функция(${'Моя переменная'}, ${'自定義變量'});

=)

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy