{"id":14285,"url":"\/distributions\/14285\/click?bit=1&hash=346f3dd5dee2d88930b559bfe049bf63f032c3f6597a81b363a99361cc92d37d","title":"\u0421\u0442\u0438\u043f\u0435\u043d\u0434\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f","buttonText":"","imageUuid":""}

Как Counter Strike сделал меня веб-разработчиком и как я открыл свою веб-студию

Я, как и многие подростки, начинал свой путь с компьютерных игр, вернее с видеоигр, тогда еще компьютеры не были настолько популярными. Да, я про те времена, когда мы зависали, играя в приставку SEGA и у нас горели блоки питания от перегрева, кто в теме, тот поймет =)

До стационарника у меня было еще пару приставок, но мы не об этом =), так вот как у меня появился компьютер, я, как и многие, внес огромный вклад в борьбу с террористами в мире Counter Strike, да и именно CS сделала меня Web разработчиком.

Так как своего PC у меня еще не было, мне приходилось прогуливать школу, в компьютерном клубе, а для этого нужны были деньги, я решил совместить приятное с полезным и собрал свой клан, чтобы выигрывать в соревнованиях и зарабатывать на этом. Я очень серьёзно подошел к этому, собрав свою команду и после упорных тренировок, мы начали выигрывать один кланвар за другим, после чего нам нужно было куда-нибудь публиковать свои победы.

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

После чего без каких-либо знаний в программировании, я открываю свой первый сайт в 15 лет, на конструкторе UCOZ для моего клана.

Вот так он выглядел =)

Когда я начал создавать табличную сетку, мне пришлось учить HTML, в то время информации было немного. Были популярны форумы, на которых можно было получить хоть какой-то фидбэк. В общем прокачивая свои навыки в HTML, CSS и совсем немного в <del>JS</del> jQuery, я начал понимать, что на конструкторе есть множество ограничений, и мне нужен полноценный сайт — пришло время переходить на хостинг.

В то же время я узнал о существовании CMS и мой выбор пал на Joomla. Установив его на первый попавшийся бесплатный хостинг, с доменом 3-го уровня, я принялся за <del>разработку дизайна</del> поиск подходящего шаблона. Это все доставляло мне куча проблем, а на решение некоторых задач уходили недели, после чего я потихоньку принялся изучать PHP.

После успешного запуска уже нескольких моих сайтов, меня не устраивал мой трафик, а точнее его отсутствие.

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

Некоторое время спустя, разработанный мною сайт для авто услуг вышел в ТОП по такой же схеме, которую я описывал выше. Выполнив еще пару заказов от знакомых, я твердо решил создать свой сайт, и он достаточно быстро вышел в ТОП по запросу разработка сайтов в моем регионе. Клиенты посыпались, приходилось многим отказывать, люди даже хотели у меня практиковаться, думая что они обращаются в огромную компанию, а я тем временем был на учебе в колледже, к тому же у меня не было своего офиса.

Недолго думая, я бросил учебу

  • открыл свой офис,
  • зарегистрировал ИП,
  • купил кассовый аппарат,
  • заказал печать,
  • открыл счет в банке.

Далее я несколько месяцев болезненно переходил с Joomla на WordPress, переписывая все свои сайты, так как видел в нем больше потенциала.

Также я брался за некоторые крупные заказы, при этом понятия не имел как их делать, но я точно знал, что если не выполню данный заказ, меня засудят, ну или вы сами понимаете… И поэтому мне приходилось работать практически не вставая с компьютера, максимум это поесть, ну или по нужде.

Дизайн моего сайта менялся чуть ли не каждый месяц, так как все время меня что-то в нем не устраивало. И с каждым разом он становился лучше, оцените если не сложно https://init.kz/, это относительно новый сайт, так как сменил название при смене ИП на ТОО.

Были взлеты и падения, хочу расписать больше, но это уже в следующих статьях, подписывайтесь =)

0
360 комментариев
Написать комментарий...
DaemonHK

В школе увлекался всем подряд: музыкой, разработкой игр (по сути, ковырянием игровых движков, типа Blitz3D), а потом увидел html-туториал в файлах WarCraft3...

Здравствуйте, меня зовут Серёжа, мне 35 лет и я пишу на PHP.

Ответить
Развернуть ветку
Сергей Добрицкий

И как нравится? Я про php

Ответить
Развернуть ветку
Денис Демидов

А что не так с php?
Отличный язык, масса библиотек, масса фреймворков, хочешь говнокодь на yii и wordpress, хочешь чтобы все по феншую в стиле java вот тебе symfony.
Для веба у php сейчас альтернатив нет по сути.

Ответить
Развернуть ветку
Sam Beckett
Для веба у php сейчас альтернатив нет по сути.

Да что угодно может быть альтернативой php для веба

Ответить
Развернуть ветку
Денис Демидов

Это "что угодно" точно будет лучше?
Или в духе яндекса, мы используем node, чтобы все учили одно и тоже, хоть бэкендеры, хоть фронтендери?

Ответить
Развернуть ветку
Sam Beckett

По каким метрикам мерить будем?
Хотя нет, давай прям по верхам пройдемся. Напомни, как там у php дела с асинхронностью обстоят?

Ответить
Развернуть ветку
GS

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

Но если вот прям очень хочется:
Сложный подход: сишный экстешн для асинхронности
Легкий (для выгрузок и пр): что-то вроде Symfony message bus и consumer'а по CRON
Оптимальный: микросервис на Go

Ответить
Развернуть ветку
Sam Beckett

Ну ты понимаешь что это все костыли и танцы с бубнами? Бэкенд можно и на ассемблере писать, только вот зачем?

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Sam Beckett

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

Ответить
Развернуть ветку
Денис Демидов

У php просто море библиотек на любой случай жизни, любой другой язык потребует из-за этого больше человекочасов, если не человеколет.
А преимуществ у других языков и нет уже после появления той же семерки.

Ответить
Развернуть ветку
Kelerius

Так, вкратце - php отстой, .net рулит.
Продолжаем дискуссию)
П.С. да на php сейчас можно писать нормально и многие так делают, так что если вы вкладывались в изучение php и сопутствующих фреймворков ,то на икорочку вам хватит.
Особенно если пойдете на удаленочку на буржуев клятых и будете из них тянуть доллары,да в страну нашу богоспасаемую завозить - дабы поддерживать отчественные кофейные заведениями своими рублями, из долларов сконвертированными.

Ответить
Развернуть ветку
Денис Демидов

Чтобы потом сервера на винде поднимать?
Месье знает толк в извращениях....
Для екомерса лучше php сейчас ничего нет, раньше в некоторых вопросах была Java лучше, но сейчас у java нет преимуществ, одни недостатки.

Ответить
Развернуть ветку
Александр Ерёмин

.NET уже давно стал кроссплатформенным)

Ответить
Развернуть ветку
GS

.NET Core настолько кросс-платформенный, что в линуксу тащит за собой виндовые библиотеки, а выполняется через прослойку...

Ответить
Развернуть ветку
Денис Демидов

Ну этим же вроде не сам майкрософт занимается, это как на iphone ставить не ios, можно конечно...

Ответить
Развернуть ветку
Александр Ерёмин

С появлением .NET Core не нужны никакие виндовые сервера.

Ответить
Развернуть ветку
Денис Демидов

Что по поводу этой статьи скажете:
https://habr.com/ru/post/357612/
Не актуально, или мелкософт в своем стиле?

Ответить
Развернуть ветку
Александр Ерёмин

Скажу, что гуглить по запросу "Подводные камни .NET" недостаточно для того чтобы сравнивать .NET Core с пыхой). Неплохо было бы еще прочитать о том, что там написано, а также поисследовать вопрос, а что могло измениться с моменты публикации статьи в 2015 году)))

Ответить
Развернуть ветку
Денис Демидов

Не очень понятно, чем net лучше пыхи, чтобы связываться с мелкософтом?
Зато понятно чем хуже - компилятор....

Ответить
Развернуть ветку
Александр Ерёмин

Я и не говорю что .NET лучше PHP. Скорее речь о том, что PHP ни разу не панацея для веба. У компиляторов и интерпретаторов свои наборы плюсов/минусов. Их в принципе некорректно сравнивать между собой

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Александр Ерёмин

Я не знаю с чего вы это взяли, что нет выигрыша в скорости. Что и как вы измеряли вы тоже не говорите. Просто набрасываете, не разобравшись. 🤦‍♂️

Ответить
Развернуть ветку
Денис Демидов

Вот вполне годная статья сравнения скорости языков:
https://habr.com/ru/post/563078/
Там пыха не значительно медленнее того же Go, но с учетом того, что от языка зависит не более 5% общей производительности (остальное база и архитектура), то выигрыш от компиляции составит доли процентов, есть ли тогда смысл время тратить на компиляцию?

Ответить
Развернуть ветку
Александр Ерёмин
от языка зависит не более 5% общей производительности (остальное база и архитектура)

Это число вообще непонятно откуда взято. Почему именно 5%, а не 3% или 10%? Каким образом измеряли?

выигрыш от компиляции составит доли процентов, есть ли тогда смысл время тратить на компиляцию.

Она что, целый день занимает 😂? Собрали билд на ci, задеплоили и забыли до следующего релиза.

Методика тестирования по ссылке на хабре конечно доставляет). Эти тесты не доказывают ровным счетом ничего. И даже тот факт что в этих тестах php проигрывает Java не доказывает что в производственной среде в той или иной ситуации php всегда будет медленнее, чем Java или наоборот. Уж если и проводить оценки, то не просто цикл for погонять, а тестировать различные алгоритмы/операции. Где то может быть выигрыш, а где то наоборот проигрыш.

https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/php-java.html

Ответить
Развернуть ветку
Денис Демидов

Когда компилятор был на многие порядки быстрее, то смысл был тратить на него ценнейшее время разработчика, а сейчас это уже пережиток прошлого, по крайней мере в вебе.
Сейчас решает количество библиотек и размер сообщества, от того у php для веба просто нет конкурентов, одни велосипеды.

Ответить
Развернуть ветку
Александр Ерёмин
Когда компилятор был на многие порядки быстрее, то смысл был тратить на него ценнейшее время разработчика, а сейчас это уже пережиток прошлого, по крайней мере в вебе.

CI/CD без участия разработчика все соберет и задеплоит, отчего "ценнейшее" время разработчика не пострадает.

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

Просто ору! 🤣🤣🤣🤣🤣 Вы хоть что-нибудь, кромы пыхи пробовали?

Ответить
Развернуть ветку
Денис Демидов

Не орите, расскажите про количество библиотек для веба на С# и размере сообщества, с удовольствием послушаю.

Ответить
Развернуть ветку
Sam Beckett

Если коротко - огромное

Ответить
Развернуть ветку
Денис Демидов

Но в разы меньше, как бы не на порядки чем у php в вебе

Ответить
Развернуть ветку
Sam Beckett

А нафига тебе 100 библиотек, которые делают одно и то же? в Nuget есть любые модули под любые задачи.

Ответить
Развернуть ветку
Денис Демидов

Больше вероятность дальнейшей поддержки, конкуренция везде работает.

Ответить
Развернуть ветку
Sam Beckett

Ага. Это как в детстве в тетрисе было - 1000 игр, где все 1000 это обычный тетрис.

Ответить
Развернуть ветку
Денис Демидов

Ну да, два вида пива (пиво есть и пива нет) намного же лучше?

Ответить
Развернуть ветку
Sam Beckett

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

Ответить
Развернуть ветку
Денис Демидов

Так у пыхи за счет многочисленности комьюнити и таких и таких хватает, но бывает, что у семи нянь дитя без глаза, когда одиночки типа Фабьена Потенси фигачат за десятерых как не в себя.
PHP это 100% трушный опенсорс без компромисов, чего не скажешь о майкрософтской продукте C# который на линуксе работает с костылями как тут писали, считай как был виндовый, так и остался.
Так что не будет у C# такого комьюнити даже теоретически, пыха его переживет 100%.
PS А чтобы не мучиться со сменой библиотеки, читай умные книжки того же Роберта Мартина и не говнокодь, ведь даже мажорная версия может потребовать что-то переписывать.

Ответить
Развернуть ветку
Александр Ерёмин
C# который на линуксе работает с костылями как тут писали, считай как был виндовый, так и остался.

.NET Core прекрасно себя чувствует в Linux-системах.

Так что не будет у C# такого комьюнити даже теоретически, пыха его переживет 100%.

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

Ответить
Развернуть ветку
Денис Демидов

кринж... поколение тикток будет мне что-то про многолетнее комьюнити пыхи говорить против net core, который опенсорсом только в 2016 году стал, ну умора....

Ответить
Развернуть ветку
Sam Beckett

Ты точно троллишь

Ответить
Развернуть ветку
Денис Демидов

Ну какое нехер опенсорс комьюнити у net, когда он только в 2016 году стал оперсорсным, да и то условно, под чуткой опекой майкрософта.

Ответить
Развернуть ветку
Sam Beckett

Чувак, ну ты реально дичь уже несешь. Речь про коммьюнити, которое поддерживает опенсорс-решения в nuget. Да блин, у меня ощущение что я стене объясняю. Надо заканчивать.

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Sam Beckett

Вот прямо сейчас на хабре читаю статью, где русским по белому объясняется почему php в чистом виде не подходит для высоких нагрузок. Сходи, почитай и ты https://habr.com/ru/post/647077/

Ответить
Развернуть ветку
Денис Демидов
С точки зрения HTTP API запросов к PHP бекенду - это порядка 13 млн. запросов (в пиковых нагрузках ~300-400 RPS). И это всё (PHP only) обрабатывает сервер с 8 vCPU (ядрами) и 32 Gb RAM и самое главное, что сервер практически не напрягается (см. КДПВ).

У меня примерно такой же сервак работает чисто под AvtoGSM.ru (который имеет посещаемость в десять раз меньше) за 5000 руб. в месяц от reg.ru

Ты уверен, что дефолтный сервак для С# со всеми лицензиями для этих 13 млн. запросов выйдет дешевле?
А разработка аналогичного приложения на C# выйдет по деньгам так же, или раз так в несколько дороже?

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

Концовка статьи для таких могильщиков пыхи как ты:

Для себя я осознал одно: PHP стек закапывать рано. И это я имею ввиду не просто web, а именно в контексте сложных энтерпрайз проектов, которые сейчас так стремятся уйти в модные микросервисы и/или Go (с абсолютно такими же корутинами и производительностью веб-сервера). Поверьте - мы пробовали, в проекте у нас существуют несколько Go микросервисов. Главное, что надо помнить - это соблюдать чистоту кода, не говнокодить, использовать паттерны, современные сторонние решения, DDD, KISS, DRY, YAGNI и куча других страшных слов, поверьте - это не пустые слова и мы в процессе переезда на Swoole в этом не раз убеждались.
Ответить
Развернуть ветку
Sam Beckett

Напомни, какие лицензии нужны для C#?

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

Я в тимлидах сижу, даже статью недавно на эту тему писал тут

Ответить
Развернуть ветку
Денис Демидов

Лицензия на винду? MS SQL?
Или на линуксе будешь запускать?
Насколько я понимаю, на линуксах его запускают редко в серьезных проектах, почему-то...
Не знаешь почему?
PS Ты же аноним? Можешь что угодно написать про себя, как проверить то?

Ответить
Развернуть ветку
Sam Beckett

Ты из 2004 года пишешь, какая лицензия на винду? В докер завернул и раскатал на линуксе. Или без докера, там нативная кроссплатформа без костылей.
MS SQL - зачем? PostgreSQL, MySQL, да хоть монга.

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

Ты реально ничего не понимаешь, без обид

PS Ты же аноним? Можешь что угодно написать про себя, как проверить то?

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

Ответить
Развернуть ветку
Денис Демидов

Ну так это же получится такой же велосипед, как асинхронный php по твоей ссылке?

Ответить
Развернуть ветку
Sam Beckett

В каком месте это велосипед-то, не пойму? .net поддерживает нативную компиляцию в linux (да хоть в макось) из коробки, без танцев с бубном. БД вообще любую всегда можно было юзать, просто некоторое время назад MSSQL был неким стандартом для энтерпрайза, и многие компании поменьше просто его к себе тащили не разбираясь.
Да что там говорить, даже докер там из коробки в vs поддерживается. Так про какие костыли речь?

Ответить
Развернуть ветку
Денис Демидов

Тут человек писал, что .net работает с костылями на линуксе, по крайней мере их куча внутри:

А вы никогда не компилили кор проекты под Linux?Судя по расширению dll, а не so - полагаю, что это либы под винду. Сначала подумал что это остатки после предыдущей сборки под винду, но без них проект на линуксе просто не запускался. .NET Core я только побаловался, мигрировав на него пару своих старых проектов на .NET, хотя и следовал майковской доке по миграции. Сложилось впечатление, что .NET под линукс - это compatibility-прослойка наподобии Wine.

гугл выдает статью как чувак в 2019 разворачивает net на линукс так, как будто выходит в открытый космос:
https://habr.com/ru/company/oleg-bunin/blog/448496/
За два года сильно все изменилось?

Ответить
Развернуть ветку
Sam Beckett

В статье речь про .net core 1.x. Сейчас в LTS вышла уже 6-я версия .net, конечно много изменилось!
Все деплоится в линукс двумя нажатиями кнопок.

Ответить
Развернуть ветку
Денис Демидов

Остается вопрос, .net core станет реальным опенсорсом, или когда майкрософту надоест в одно рыло это тянуть, не увидит для себя выгод и прикроет лавочку?
У php таких рисков нет, это по настоящему трушный опенсорс, который динамично развивается усилиями множества мощных игроков уровня фейсбук.

Ответить
Развернуть ветку
Sam Beckett

Да. Или нет. Какая разница? Языки развиваются, умирают и рождаются. И это последнее, на что смотрят при выборе технологии для нового проекта. Системы все равно живут сильно меньше циклов жизни языков, так что нет причины не писать на современном языке, думая о том, что с ним будет через 15 лет

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Александр Ерёмин
.NET Core я только побаловался

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

Ответить
Развернуть ветку
Денис Демидов

Ты ведь и так не баловался, все на докер переложил, верно?
Если человек прав, то с большой вероятностью, С# не даст роста производительности на линуксе даже по сравнению с php ))))))))))))
Так зачем тогда добровольно лезть в лапы мелкософта?

Ответить
Развернуть ветку
Александр Ерёмин
все на докер переложил

А что собственно плохого в использовании контейнеров?

Если человек прав, то с большой вероятностью, С# не даст роста производительности на линуксе даже по сравнению с php ))))))))))))

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

Так зачем тогда добровольно лезть в лапы мелкософта?

Если бы вы сами сравнили лицензии MIT и PHP License на предмет того, где больше ограничений и в чем они выражены, то всякую чушь про какие то "лапы мелкософта" не писали бы 🤦‍♂️

Ответить
Развернуть ветку
Денис Демидов

Дядя ты дурак? (с)
Причем тут типы лицензий и тот факт, что .net псевдоопенсорс, который чуть менее чем полностью тянет лишь майкрософт?

Ответить
Развернуть ветку
Александр Ерёмин
Дядя ты дурак? (с)

Расслабьтесь, вы просто некомпетентны)

Ответить
Развернуть ветку
Денис Демидов

Ну давай, расскажи мне, как тип лицензии кому-то помешал пыху использовать, а потом как корпорации убивали продукты щелчком пальцев, как тот же Silverlight просто перестали поддерживать.
Ты со своим C# считай на пороховой бочке сидишь, потратишь годы на погружение, а потом узнаешь, что все, "кина не будет".
От того настоящий опенсорс будет развиваться, как таже пыха, а псевдоопенсорс как этот .net не факт.

Ответить
Развернуть ветку
Александр Ерёмин

C# - MIT
Silverlight - MS EULA
C# это продукт .NET Foundation, а Silverlight чисто MS-продукт.
Услышали звон, но не знаете откуда он 🤣

Ответить
Развернуть ветку
Денис Демидов

А .NET Foundation майкрософт не в одно рыло тянет? Кто-то еще им занимается?

Ответить
Развернуть ветку
Александр Ерёмин

Не мытьем, так катаньем). Если не бенчмарками, то количеством библиотек и подсчетом звездочек на гитхабе "доказать всем", что пыха это мастхэв в вебе🤣.

Если есть желание такими глупостями заниматься, то можете сами зайти на nuget и считать каких там библиотек и сколько.

Ответить
Развернуть ветку
Денис Демидов

Я этот холивар развел с одной единственной целью, чтобы мне доказали, что php уже не торт, но пока какие-то устаревшие эмоциональный сопли времен php 5

Ответить
Развернуть ветку
Александр Ерёмин

Никто и не говорил, что PHP не торт. Это вы доказываете всем, что PHP почему то лучше остальных , опираясь на весьма неконструктивные доводы. ¯\_(ツ)_/¯

Ответить
Развернуть ветку
Денис Демидов

Я не говорю, что он лучше, я говорю, что ему альтернативе по совокупности фактов в реальной жизни по факту нет, это не одно и тоже.

Ответить
Развернуть ветку
Александр Ерёмин
Ответить
Развернуть ветку
Денис Демидов

Да и нах в 21 веке вообще компилятор срался, когда пыха местами быстрее работает или также?

Ответить
Развернуть ветку
Kelerius

А причем тут компилятор? Он за меня занимается тем,чем я не хочу - гененирует оптимальный код под миллионы платформ.

Если вам интерпретатор милее - так и используете его)

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Александр Ерёмин
По массе замеров, пыха давно net обогнала в скорости, компиляция это уже какой-то анахронизм получается.

По каким замерам? Откуда вы это берете?

Ответить
Развернуть ветку
Денис Демидов

Язык никогда не был узким местом производительности в вебе, там 95% на базу и архитектуру приходится все, но теперь и сама пыха работает не медленнее компилируемых языков, так зачем тогда компилятор?

Ответить
Развернуть ветку
Kelerius

Компилятор времени отнимает мало,а дает много. Например, поддержку ошибок типов на этапе компиляции. И много других плюшек,с этим связанных.

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Sam Beckett

У тебя аргументы из серии "мне нравится php потому что у php-шного IDE иконка красивее"

Ответить
Развернуть ветку
Денис Демидов

Ты не согласен с тем, что IDE отлично справляется с проверкой типов или что?
Не стремно минусы ставить тому, с кем споришь?
Фу таким быть

Ответить
Развернуть ветку
Kelerius

А проверку типов как php реализует?
Уж простите,сейчас даже js компилируется!) А уже потом интерпретируется (хотя в этом я уже не уверен).

Ответить
Развернуть ветку
GS

PHP уже давно типизируемый, мало того есть declare(strict_types=1).
А где у вас JS компилируется? Нет, есть движки, компилирующие JS, но это уже отдельная история.

Ответить
Развернуть ветку
Александр Ерёмин

В чем заключается геморрой?

Ответить
Развернуть ветку
Денис Демидов

Время на компиляцию, сложнее отладка, ограничения в полиморфизме.

Ответить
Развернуть ветку
Sam Beckett

Какое время на компиляцию, ты пьяный чтоли? Чем сложнее отладка?
Ты ведь никогда не писал ни на чем, кроме php, верно?

Ответить
Развернуть ветку
Денис Демидов

Тебе ли про опьянение говорить, когда ты выше говорил о том, что в php нет строгой типизации?
На С++ много писал в свое время, java в теории знаю, за счет множества книг где на ней примеры приводятся.
Ты будешь спорить с тем, что отладка в интерпретируемом языке проще?

Ответить
Развернуть ветку
Sam Beckett

Объясни чем она проще-то?

Ответить
Развернуть ветку
Денис Демидов

В С# ты сможешь внедрить в продуктовый код функцию типа debug_backtrace, которая в случае чего запишет все в лог?
Насколько я понимаю, там это только в режиме отладке получится сделать.

Ответить
Развернуть ветку
Sam Beckett

У меня на проде C# пишет все в Seq и в Prometheus. Зачем внедрять в продакшн какие-то костыли я даже спрашивать боюсь

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Sam Beckett

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

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Sam Beckett

Питон получил распространение как язык для ML. Я не знаю кто в здравом уме будет пилить проект для веба полностью на питоне

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Денис Демидов

Тогда php уже лет десять как компилируемый с opcache?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Александр Ерёмин

Наверное он все таки нас троллит. Не может быть столько кринжа в одном треде.

Ответить
Развернуть ветку
Kelerius

Нет,я его знаю давно. Товарищ просто заблуждается и при этом почувствовал в себе силу программиста.
Это очень хорошо, но это пройдет)
Очень рад за него.

Php действительно сейчас достойный язык и хорошо решает свои задачи.

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Денис Демидов

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

Ответить
Развернуть ветку
Davidov Alexander

А парни из php то и не знали об этом
root@glados:~$ docker run -ti --rm php:fpm-alpine3.15 php -m | grep "op"
openssl
https://github.com/docker-library/php/blob/master/8.1/alpine3.15/fpm/Dockerfile

ни в официально собранном контейнере командой php , ни в инструкциях по сборке контейнера нет упоминания opcache

То что за вас в неком $distrib_name кто то из мейнтейнеров его собрал и добавил в зависимости к метапакету php, совершенно не значит что "php уже лет десять как компилируется с opcache"

Ответить
Развернуть ветку
Kelerius

https://habr.com/ru/company/otus/blog/509598/

Я может что-то не понял или в php завезли компилятор?

Ответить
Развернуть ветку
Денис Демидов

opcache прокачали по сути, который там уже десяток лет

Ответить
Развернуть ветку
Davidov Alexander

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

Ответить
Развернуть ветку
Денис Демидов

Я же не говорю, что компиляторы умрут, я говорю, что в вебе для высокоуровневой логики они не нужны.
А для низа там скорее компилятор С нужен, а не С#
Еще раз, на всякий случай, я только про веб рассуждаю.

Ответить
Развернуть ветку
Davidov Alexander

Опять мимо, если вы себе сделали на пыхе полтора магазина, это не значит что весь веб сидит на нем, а даже те кто сидит (тот же деливери) сьезжают с пыха на go, либо ваяют перед ним свой JIT, например HHVM от Facebook и kPHP от ВК, при этом тот же ФБ плавненько сваливает на свой язык hack (это видно по последним релизам HHVM)

А вы говорите "не нужны")

Ответить
Развернуть ветку
Денис Демидов

Да никто не сваливает с пыхи, на go делают небольшие микросервисы, зачем глупости писать?
JIT по сути тот же OPCache, который на пыхе есть уже лет десять, а в php 8 JIT уже из коробки идет.
Пыха активно развивается и впитывает в себя все, что нужно сообществу.

Ответить
Развернуть ветку
Александр Ерёмин
JIT по сути тот же OPCache

Вообще нет)))
JIT не нужен никакой Zend VM в отличие от OPCache

Ответить
Развернуть ветку
Денис Демидов

Вам лишь бы поспорить? Я же про суть говорю, а не про реализацию.

Ответить
Развернуть ветку
Davidov Alexander

ну если вы считаете что k8s - это только "небольшие микросервисы" то не буду ваши глупости разрушать)

Ответить
Развернуть ветку
Денис Демидов

Ну хз, назвать k8s веб приложением....

Ответить
Развернуть ветку
Kelerius

C# сейчас как раз в вебе очень силен. Используется где-то в промежутке между ядром проекта на Java и фронтом.
Или как веб-сервис изначально.

Еще есть такая штука как бекенд-на-фронтенде (могу ошибаться) - это когда для react клиента делают nodejs сервис с апи,которым заведует команда фронтов.
А уже дальше идет обращение к условному сервису на C#.

Ответить
Развернуть ветку
Денис Демидов

node.js это полноценный бэкенд, ему уже ничего особо не нужно, это для тех, кто хочет бэкенд на javasript (чаще TypeScript) писать

Ответить
Развернуть ветку
Kelerius

Да, но ноду сейчас пихают как бекенд для фронта - который пробрасывает АПИ запросы от фронта к беку (основному,написанному например на том же C#).
Нужен для того чтобы не перепиливать основной бек из-за вечных хотелок фронтовиков.

Ответить
Развернуть ветку
Денис Демидов

Ну так он и в пыху также может кидать все, этот аргумент мимо

Ответить
Развернуть ветку
Davidov Alexander

Вы описали классическую разработку в любой более-менее развитой компании, да там просто делят фронт и бэк на старте (в тч могут разделять и команды разработки) под бэк может идти что угодно - java, python, nodejs, .net, etc. Фронт (если нет легаси клиентов) делают на реакте/ангуляре
Собсно второй теребонькает апишечку первого и делов)

Ответить
Развернуть ветку
Александр Ерёмин

Ваши, ничем не подкрепленные, рассуждения это типичный пример эффекта Даннинга — Крюгера.

Ответить
Развернуть ветку
Kelerius

Культура программирования у товарища хромает, но это ничего.
Главное,что он наш - программист!

Ответить
Развернуть ветку
Sam Beckett

Это не говоря о том, что с помощью докера и k8s я могу поднять у себя на локале продуктовое окружение и потыкать брейкпоинтами код в IDE. Это если совсем уж припрет

Ответить
Развернуть ветку
Sam Beckett

Я имел в виду опыт промышленной разработки.

Ответить
Развернуть ветку
Денис Демидов

Ну так и ты на пыхе походу не писал, раз глупости про типизацию пишешь.

Ответить
Развернуть ветку
Sam Beckett

В том-то и дело что приходилось писать на php в промышленных масштабах

Ответить
Развернуть ветку
Денис Демидов

Давно видимо это было, очень давно...

Ответить
Развернуть ветку
Kelerius

Отладка проще,ага))
Еще только 100% покрытием тестов не забудьте покрыть ваш кодец,так как вам вместо типа А пришлют тип Б , ваш интерпретатор это схавает,а вы будете с отладчиком искать а где-же там ошибка то.

Ответить
Развернуть ветку
Денис Демидов

Ну о чем с вами разговаривать, если у вас познания о php десятилетней давности?
declare(strict_types=1); и будет вам строгая типизация.

Ответить
Развернуть ветку
Kelerius

А строгая типизация будет за счет чего обеспечиваться?
Там же нет магии. Все равно значит компиляется где-то.

Ответить
Развернуть ветку
Денис Демидов

На лету все IDE делает, а пыха уже когда столкнется выкинет ошибку.

Ответить
Развернуть ветку
Kelerius

Так это разве не компилятор делает? Тем более в PHP он оказывается есть

Ответить
Развернуть ветку
Денис Демидов

В PHP нет компилятор как в C#, JIT это кэш интерпритатора по сути, чтобы одну работу дважды не делать если исходники не менялись.
Он остался 100% интерпретатором, может php код из базы взять и исполнить на лету.

Ответить
Развернуть ветку
Kelerius

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

Ответить
Развернуть ветку
Денис Демидов

Ну так мне какая разница как IDE это делает, если я не испытываю неудобств компилятора?

Ответить
Развернуть ветку
357 комментариев
Раскрывать всегда