LINUX.ORG.RU

Безоговорочный выбор ЯП для веба.

 


2

6

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

Разбор.

-Статические языки. Это производительность и экономия ресурсов сервера, а значит денег на сервер. Плюс очень сильно помогает от мелких ошибок, особенно когда долго за кодом и начинаешь путаться (тут IDE или компилятор умело даст по рукам, сказав что ты запутался - очень помогает). Ну а так имеется нормальное (настоящее) многопоточное программирование (и чаще все в одном процессе).

-Java - язык очень нравится (честно, считаю наилучшим для бизнеса), но ужасно не нравится энтерпразные решения и библиотеки (один ужас... всякие ЕЕ и даже Spring для простого или среднего пет-проекта, смотрятся ужасно). Оверхед на оверхеде, читать исходники очень сложно, порой обычное решение обернуто в избыточное число объектов. Про сервлеты (и ЕЕ) я уже говорить не буду, рассматривал постройку приложения на embedded-серверах (Jetty, Undertow, Netty). Очень нравится то, что можно реализовать все что нужно через maven (гредле), хотя конечно nginx придется ставить, но вот эта вся мощь - что юзаешь один язык, очень круто. Крайне бесят XML.

-Kotlin - не понял фишку языка, вероятно для андроида, так как представляет собой тупо обертку над джавой (даже над либами, причем не всегда совместимую). Конечно, много решений болезней джавы и в тоже время, некоторые решения довольно странные (таких для меня не мало, например фишка с open или отказ от статики, в общем, какое-то баловство имхо).

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

-С++ и Раст - слишком хардкорен для меня и думаю для веба в целом тоже.

-Динамические языки. быстрее скорость разработки, значительно меньше кода. Порой для веба типы толком и не нужны (чаще работаешь со строками и мапами, да регексами).

-PHP и node.js - пропущу в обзоре.

-Python - не совсем идеальный язык, как фанатеют люди которые пишут на нем, но на мой взгляд лучший выбор из скриптовых языков на сегодня (не идеальный язык, но идеальный выбор). Правда я особо не люблю FULL фреймворки, такие как джанго, так как в вебе, чаще проще что-то написать по-быстрому самому, чем потратить дни на решение проблем или изучения мануалов того или иного монолита (туда же Spring MVC). По этой же причине посматривал на фласк или что-то типа фалкона (пока еще не решил).

И так, предлагаю дискусс - что выбрать «N», или «Y» и почему вы так решили?

PS пропустил (и не знаю о них) - руби, свифт, шапр и т.д.

Ответ на: комментарий от umren

а ты знаешь куда смотреть то за вакансиями? видимо нет)

uk - 5,442 вакансии

nl - 3.491 вакансии

fr - 5 482 вакансии

de - 5.242 вакансии

И по каждой стране даже на твоём подобранном ресурсе он уступает жабе, жабоскрипту, а в половине стран — даже питонам. Ты сам по своим ссылкам ходил?

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

Ты же понимаешь, что ты сравнил raw и микрофреймворки с джангой? И что даже в этом бенчмарке php даже близко не подойдёт ни к ноде, ни к голангу.

x3al ★★★★★
()

Требования языка для веба:

  1. Нормальное орм, причем такое, чтобы когда надо было сбилдить запрос вручную, не прихоидилось вручную контактенировать его в виде строки по частям.
  2. Нормальный байндер и парсер моделей, причем чтобы немногословный и без тонн аннотаций.
  3. Строгая статическая типизация.
  4. Чтобы из фреймворка выпиливалась вся архаика типа мвц, ибо никому генерировать страницу на сервере уже не надо.
  5. Какой-то фреймворк для передачи данных между приложениями по сети.
  6. Вебсокеты.
  7. Кроссплатформенность.
  8. Интеграционные и юнит-тесты.

Мое мнение: Пыхыпе - это уродливый шаблонизатор, он изначально придумывался как скрипт, который один раз запускается и генерит хтмл страничку через cgi на каждый запрос. Двадцать лет назад было модно, чтобы это не делать на си или перле, сейчас это нахер никому не надо. Что там с тестами знать не хочу.

RoR - кучу времени тратить на изучение всех потрохов фреймворка. Динамическая, но строгая типизация, нормальная орм-ка (одна из первых, по факту), есть вебсокеты. Все виды тестов из коробки. Мне просто не нравится.

Го - есть вебсокеты, кроссплатформенен, нормальных орм нет, использую подобие орм для билдинга запросов. Удобно мапяться структуры к данным. Куча средств гоняния данных по сети на любой вкус. Из минусов - из-за пустых интерфейсов типизация превращается в какашку. Чтобы тесты писать, надо тащить все паттерны типа IoC и т.п. в язык, где это все по-нормальному делается никак. Нет моков нормальных и т.п. Сейчас пилю проект на го.

Шарп - для гоняния данных по сети акку еще не подвезли на дотнеткор, орлеанс тоже еще нет под дотнеткор, с вебсокетами беда, несмотря на отсутствие м2м в энтити фреймворке, он очень даже не плох. Из фрейморка легко выковыривается все лишнее. Модели байндить изи-бризи. С юнит и интеграционными тестами все ок.

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

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

django-py3 2,100 symfony2 1,949

Yii2 3040 Phpixie 3076

На hhvm вообще за 5000 выходит. Что касается симфонии, то ИМХО там что-то накосячили - она у них во всех тестах выдаёт ~2000, даже на плейнтексте.

Есть ещё fat-free с 5,760 на обычном пыхе, но там такой своеобразный ORM, что это наверное нельзя сравнивать.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

А теперь иди открой ссорцы Yii2 https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/frameworks/PHP...

У которого выполняют сырой запрос через обертку PDO (вроде так драйвер в пхп назывался, не помню).

И джанги, у которой реально работает ORM с маппингом на объекты.

PS Лол, даже сырые запросы через враппер yii2 просели в два раза, от чистого raw драйвера PDO.

wist512
() автор топика
Ответ на: комментарий от xmikex

Я даже не знаю как уточнить. Возьмем какой-то обычный сайт, с аяксом, но не чисто REST. Может хостов 5-10К. Если повезет, то больше :)

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

ну так есть часть серверная и часть клиентская же.

xmikex ★★★★
()

ты забыл написать для чего именно нужен язык. что надо писать, бэкенд или фронтенд (или оба). под веб щас пишется что угодно, и практически на любом языке. безоговорочно не получится. я бы посоветовал обратить внимание на typescript / node.js, но судя по тому, что ноду ты умышленно пропустил, данное направление тебе неинтересно.

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

Для бэкенда мне. Ноду пропустил, потому что краем ухо наслышан что там сейчас какие-то «боли» с переходом на новую версию (или что-то в этом духе), наслышан про калбэк-хеллы, которые сейчас заменили чем-то но не более лучшим (промисы?) и что уж больно часто все меняется. Может уже все и не так, но не считаю среду серьезной для многолетнего проекта.

Пхп пропустил, не вижу смысла в нем. Мне не нравится ООП мания в этом скриптовом языке, мне проще взять джаву, которая в этом плане такая же только лучше. А если писать в процедурном стиле, то буду я все писать сам и с нуля, в таком случае я возьму лучше Go, он для меня, прям, процедурный. И я как-то выгорел на пхп давно.

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

А теперь иди открой ссорцы

В табличке написано full orm. Я хз почему устроители так считают. Но вот с phpixie всё нормально, честный orm с моделями.

no-such-file ★★★★★
()
Ответ на: комментарий от wist512

Только не нужно думать, что я противник ООП. Просто в пхп, там реально какое-то джава-подражание. Если в джаве, с ее статическими типами и дженериками - каждый тип и его применение в методах - это четкое и нужное поведение, то в динамическом языке это какой-то избыток, который усложняет код. В общем, не вижу смысла энтерпрайза в пхп (а вот массивы там были годной задумкой, лучше бы это развивали)

wist512
() автор топика
Ответ на: комментарий от no-such-file

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

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

Вроде этот где-то выиграл, вроде тот обогнал там-то, а все равно грустно.

Это да. Я вообще не поддерживаю такие батлы, потому что вместо идеоматичного кода туда начинают пихать всякие «оптипизации» чтобы обогнать хотя бы на пол-шишечки и этим что-то кому-то доказать. Заметил там ещё такой момент что в пых-бенчах в fortunes для сравнения строк используют strcmp. Хотя сказано, что строки уникодные, но явно не оговорено что сортировать нужно по уникоду. С другой стороны в питоне3 сравнение строк будет уникодное по дефолту? Это шняга какая-то,а не честный бенчмарк.

no-such-file ★★★★★
()
Ответ на: комментарий от wist512

Если в джаве, с ее статическими типами и дженериками - каждый тип и его применение в методах - это четкое и нужное поведение

Погоди, типы уже запилили (хоть пока и необязательные), скоро и до дженериков дело дойдёт. В Hack уже есть. В php8 обещают jit прикрутить. Будет полный ынтырпрайз.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Там очень много шероховатостей и прям за истину многое не стоит брать (например момент сравнение синхронных серверов с асинхронными, которые, понятно, рвут все и вся на plain text). Но в тоже время это тесты, которые реально «тесты приложений», а не коня в вакууме в цикле for.

Этому тоже не стоит верить http://benchmarksgame.alioth.debian.org/ Там скандальчик был (по-моему еще на реддите ссылка была, может вру) https://habrahabr.ru/post/119579/

wist512
() автор топика
Ответ на: комментарий от no-such-file

Погоди, типы уже запилили (хоть пока и необязательные), скоро и до дженериков дело дойдёт. В Hack уже есть. В php8 обещают jit прикрутить. Будет полный ынтырпрайз.

А потом по ссылке скачать php будет загружаться java?

wist512
() автор топика

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

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

Dred ★★★★★
()
Последнее исправление: Dred (всего исправлений: 1)

PHP всех рвет, потому что он похож на сишку. У питона уродский синтаксис, поэтому сразу отпадает.

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

сырой пхп у джанги отхватывает

...

Ты сравниваешь сырой запрос (raw) с джанговской-ORM

А ничего, что вопрос именно так и звучал? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от no-such-file

Что касается симфонии, то ИМХО там что-то накосячили

Она — вообще тяжёлый монстр. У Питона тоже есть

- cherrypy: 25
- twisted klein: 31
- flask-pypy: 402

...

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

Там очень много шероховатостей и прям за истину многое не стоит брать

Именно это я в самом начале и сказал :) Объективного бенча нет. Эквивалентных фреймворков — тоже.

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

вначале ты пишешь

вакансии где-нибудь за пределами снг

теперь ты пишешь

И по каждой стране даже на твоём подобранном ресурсе он уступает жабе, жабоскрипту, а в половине стран — даже питонам

тебе работа нужна и не хватает 5400 вакансий? где проблема то?

umren ★★★★★
()

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

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

где проблема то?

Вакансии можно и по COBOL'у найти, это же не значит, что он жив.

Уже сейчас php нужен всё меньше если ты не собираешься в фейсбук.

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

Для бэкенда чаще встречал, чтобы использовалась JVM (Java или Scala), иногда .NET. А вот PHP и всякие node.js с питоном - это больше удел фронтенда.

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

А ты вижу - уже)

Ну, знаешь, чтобы писать на них бэкенд, это надо быть очень и очень рискованным товарищем. Сайты-мурзилки не в счет

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

Какой-то из вариантов с Gin-gonic вот:

package main

import "github.com/gin-gonic/gin"
import "runtime"
import "net/http"
import "regexp"
import "strings"
import "fmt"

func main() {

    runtime.GOMAXPROCS(runtime.NumCPU() * 2)

    router := gin.Default()
    router.LoadHTMLGlob("templates/**/*.tmpl")
    //router.LoadHTMLFiles("templates/template1.html", "templates/template2.html")
    router.GET("/chart/1000.php", func(c *gin.Context) {
        chart_type := c.DefaultQuery("id", "EURUSD")
        rp := regexp.MustCompile("[^A-Z]+")
        chart_type = rp.ReplaceAllString(strings.ToUpper(chart_type), "")
        fmt.Printf("replaced chart_type=%s\n", chart_type);

        c.HTML(http.StatusOK, "chart/1000.tmpl", gin.H{
            "chart_type": chart_type,
        })
    })

    router.Run("127.0.0.1:18080")
}


Вариант на Revel, соответственно, уже не однофайловый, основной код там такой:
package controllers

import "github.com/revel/revel"
//import "fmt"
import "regexp"
import "strings"

type Chart struct {
    *revel.Controller
}

func (c Chart) Chart1000() revel.Result {
    var chart_type string = c.Params.Get("id")
    if chart_type == "" {
        chart_type = "USDRUB"
    }
    rp := regexp.MustCompile("[^A-Z]+")
    chart_type = rp.ReplaceAllString(strings.ToUpper(chart_type), "")

//  fmt.Printf("id=%s\n", chart_type)
    return c.Render(chart_type)
}

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

Первое - php7-fpm + nginx, второе - gin-gonic в release mode с regexp.MustCompile, вынесенным из хендлера:

Summary:
  Total:        1.0130 secs
  Slowest:      0.0231 secs
  Fastest:      0.0001 secs
  Average:      0.0050 secs
  Requests/sec: 9871.5644

Response time histogram:
  0.000 [1]     |
  0.002 [720]   |∎∎∎∎∎∎
  0.005 [5107]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.007 [2501]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.009 [1078]  |∎∎∎∎∎∎∎∎
  0.012 [383]   |∎∎∎
  0.014 [135]   |∎
  0.016 [50]    |
  0.019 [12]    |
  0.021 [9]     |
  0.023 [4]     |

Latency distribution:
  10% in 0.0027 secs
  25% in 0.0034 secs
  50% in 0.0043 secs
  75% in 0.0062 secs
  90% in 0.0079 secs
  95% in 0.0098 secs
  99% in 0.0133 secs

Details (average, fastest, slowest):
  DNS+dialup:    0.0000 secs, 0.0000 secs, 0.0144 secs
  DNS-lookup:    0.0000 secs, 0.0000 secs, 0.0088 secs
  req write:     0.0001 secs, 0.0000 secs, 0.0124 secs
  resp wait:     0.0034 secs, 0.0001 secs, 0.0103 secs
  resp read:     0.0013 secs, 0.0000 secs, 0.0161 secs

Status code distribution:
  [200] 10000 responses

=========================================================

Summary:
  Total:        0.7658 secs
  Slowest:      0.0235 secs
  Fastest:      0.0001 secs
  Average:      0.0037 secs
  Requests/sec: 13057.9554
  Total data:   700000 bytes
  Size/request: 70 bytes

Response time histogram:
  0.000 [1]     |
  0.002 [4068]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.005 [2963]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.007 [1741]  |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.009 [725]   |∎∎∎∎∎∎∎
  0.012 [313]   |∎∎∎
  0.014 [111]   |∎
  0.016 [48]    |
  0.019 [19]    |
  0.021 [7]     |
  0.023 [4]     |

Latency distribution:
  10% in 0.0004 secs
  25% in 0.0014 secs
  50% in 0.0031 secs
  75% in 0.0053 secs
  90% in 0.0076 secs
  95% in 0.0095 secs
  99% in 0.0134 secs

Details (average, fastest, slowest):
  DNS+dialup:    0.0000 secs, 0.0000 secs, 0.0036 secs
  DNS-lookup:    0.0000 secs, 0.0000 secs, 0.0017 secs
  req write:     0.0000 secs, 0.0000 secs, 0.0050 secs
  resp wait:     0.0036 secs, 0.0001 secs, 0.0234 secs
  resp read:     0.0001 secs, 0.0000 secs, 0.0047 secs

Status code distribution:
  [200] 10000 responses

anonymous
()

php/java, хотя java в основном для каких нибудь тяжёлых корпоративных решений, т.к. это ужасно дорого и долго.

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

То есть ты считает нормальным сравнивать чистый SQL запрос на драйвере который написан на сях, с полноценной ORM с маппингом? Интересно.

Что касается симфонии, то ИМХО там что-то накосячили
Она — вообще тяжёлый монстр. У Питона тоже есть

Так ларавер (я дальше кинул) еще хуже (вроде 1500), но в симфони была хоть более менее норм ORM и более менее нормальный объектно-ореентированный подход, поэтому я ее и кинул (может что поменялось за эти года)

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

Чтобы спасти лицо пхп, мы тут теряем объективность. Я конечно понимаю, что всех уверовали, мол пхп7 стал летающим чудом, но не думал, что маркетинговый буллшит может так прочно в голове засесть.

PS секрет прост, да пхп7 ускорили, облегчили местами и стало чуток быстрее и экономнее, но говнокод то остался :) все эти чудесные фреймворки уровня «легкого вхождения в язык» с их чудесным кодом никуда не делись (кстати и поэтому еще большой вопрос, считать ли легкое вхождение в язык его плюсом)

wist512
() автор топика
Ответ на: комментарий от KRoN73

KRoN73

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

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

Кстати на регексы на пхп тоже реально быстрые (как и драйвер на mysql) https://benchmarksgame.alioth.debian.org/u64q/regexredux.html (обрати внимание что го 20 в этом списке)

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

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

Меня всегда поражало, что всегда найдутся умельцы тестирующие языки статической и динамической типизации. Го vs PHP

Просто запросы (это самый объективный, чтобы посмотреть отклик языка) https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=p...

С базой (в топе тестим как хорошо написан SQL драйвер, для пхп его работа на сях) https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=f...

С множественными запросами (на самом деле та же лабуда с prepare statement) https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=q...

wist512
() автор топика

-Python - не совсем идеальный язык, как фанатеют люди которые пишут на нем, но на мой взгляд лучший выбор из скриптовых языков на сегодня (не идеальный язык, но идеальный выбор). Правда я особо не люблю FULL фреймворки, такие как джанго, так как в вебе, чаще проще что-то написать по-быстрому самому, чем потратить дни на решение проблем или изучения мануалов того или иного монолита (туда же Spring MVC). По этой же причине посматривал на фласк или что-то типа фалкона (пока еще не решил).

У Фласка дока не совсем полная, мало примеров. Но сам фреймворк мне понравился. Про питон скажу, что он таки строго типизированный, достаточно простой и приятный после PHP. Много библиотек, чистый синтаксис, он также считается лучшим языком обучения в образовательных заведениях. Мне особо нравится его интерпретатор со встроенной справкой и то, как он указывает на опечатки, ошибки синтаксиса в коде.

Посматриваю на Go.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от wist512

То есть ты считает нормальным сравнивать чистый SQL запрос

Не я, а тот, кому я отвечал :) Не выпадай из контекста.

Так ларавер

Почти эталонный тормоз, кстати :)

Чтобы спасти лицо пхп, мы тут теряем объективность

Это уже не ко мне. Я ни чьего лица спасать привычку не имею и спокойно меняю инструмент, когда появляется лучшая альтернатива :D

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

Ты возьми эти регексы и засунь в цикл с итерацией 1000.000 и посмотри как начнут уступать языки с динамической типизацией

Да зачем регекспы, вон, и в «объектом Фибоначчи» Go vs PHP7 идёт как 0.755 vs 50.6 :) 67 раз, Карл!

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

Да ничего там в трое не быстрее, тестят одни только числа Фибоначчи (автор вероятно готовился к собеседованию).

Я больше чем уверен, что в питоне стоит какой-то оптимизатор на числа, которые делает дополнительные операция проверки и за счет чего и проседает (одного if достаточно чтобы слететь значительно), а в пхп какой-нибудь голый 64битник гоняют, который может переполнится.

В общем, как всегда какая-то техническая мелочь, под которой один язык может исполняться быстрее, и дилетанты сразу же делают выводы, мол язык N втрое быстрее Y (конечно быстрее если твой сайт служит для вывода чисел фибоначчи).

Я во все не питонист, но серьезно? Выводы на основе дробление чисел фибоначчи?

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

Первое - php7-fpm + nginx, второе - gin-gonic

Даже в твоём случае вышло Golang вышел всего на 30% быстрее, чем PHP. Что уже несколько грустно для языка со статической типизацией и компиляцией в машкод против динамической типизации и без JIT в рантайме.

У меня цифры вышли другие, я привёл выше, но разница всё равно не на порядок. Может, Golang в последнее время допилили, может разница в архитектуре серверов сказывается, может, какие-то условия запуска (мы не оговорили число воркеров у nginx и php-fpm, не оговорили число параллельных запросов и т.п. — я с прошлого теста их уже просто не помню).

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

Быстрее, но не лучше

А вот тут уже начинается субъективщина :) Например, мне Python как язык, нравится намного больше, чем PHP. Но вот уже, скажем, инфраструктура (от composer до LEMP) у PHP предпочтительнее, почему я на Python так и не перешёл. Хотя использую его иногда для системного скриптописания и делал как-то для изучения проект на Django.

Вот если речь о Ruby, который в цитате последним, то это один из худших сегодняшних лидеров :) ИМХО, конечно.

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

Это уже не ко мне. Я ни чьего лица спасать привычку не имею и спокойно меняю инструмент, когда появляется лучшая альтернатива :D

Я тоже легко меняю инструменты, но эти вот фибоначчи и прочие это жесть. Конечно будет на «число-дробилках» пхп быстрее питона, но тут же возьми любую математическую библиотеку питона и пхп будет курить нервно в сторонке.

У питона вроде «бесконечные» числа, вот и весь оверхдед кстати.

Собственно я и хотел показать, что пхп7 может смело откушать 20-50% скорости от других динамических языков, но качество либ на пхп оставляет желать лучшего, не всегда, но очень часто (собственно это мы и видим по тестам фреймворков).

Я перестал уверовать в пхп лет 7 назад и вам советую :)

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

тестят одни только числа Фибоначчи

Ясно, вводную не читал, в сорцы не заглядывал, целиком название теста не прочёл :D

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

В исходники глянь, а? :) Или прочитай после слов «Предупреждаю сразу» на https://github.com/Balancer/benchmarks-fib-obj :)

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