Проект .net vs проект php. Что дороже? Добавил сравнение с Java

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

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

молодец, а теперь давай померяем порог вхождения языка INTERCAL по Вашей методике.
 
вопрос был поставлен о цене т.к. заказывая серьезный энтерпрайз-проект, я конечный продукт, написанный на том и другом языке, получу идентичный по функционалу, защищенности, сроку выполнения?
Цена будет разная - это понятно. Так а стоит ли овчинка?
Читал где-то про дыры в безопасности пхп-кода, так ли это?
 
дыра в безопастности - это платформонезависимый феномен
 
Не, то фигня. Вот заклинание заклинание от всех багов "дотнет акбар"...
ну чего же, я часто сталкиваюсь на дотнетовских сайтах с невозможностью засунуть в поле ввода теги HTML при том, что по делу очень надо.
оно считает себя умнее разработчика и просто выпиливает их не спрашивая. это официальная задокументированная фишка
и надо еще приложить дополнительные усилия, чтобы это гавно отменить.

не думаю, что от этого стало сильно безопасно. зато точно стало неудобно.
 
Не знаю, мне скучно спорить на эту тему. По долгу службы приходилось работать и с тем и с тем. Везде есть свои заморочки и плюсы. Гамно можно написать на дотнете, равно как шедевр на пхп.

Вопрос действительно не в технологии, а в грамотном ТЗ и хорошем менджменте.
 
Вопрос действительно не в технологии, а в грамотном ТЗ и хорошем менджменте.

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

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

естественно, что кадры решают все. но вот зачем принуждать кадры заниматься БДСМ и как долго они это выдержат...
я так понимаю, что это камень в огород дотНета...
есть ли задачи которые лучше/проще/быстрее решать с помощью дотНета, чем с помощью пхп?
 
я так понимаю, что это камень в огород дотНета...
есть ли задачи которые лучше/проще/быстрее решать с помощью дотНета, чем с помощью пхп?

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

1. Как в PHP обстоит дело с работой с НЕ связанными с Web Microsoft-технологиями: Active Directory, генерация файлов MS Office, NTLM аутентификация и т.п. ? Большая просьба только, пожалуйста, без флуда про открытые стандарты - в реальной жизни задачи бывают разные, и сопряжение с другими продуктами от MS - не редкость.

2. Поддерживается ли распараллеливание на несколько ядер / асинхронное программирование? Как решается вопрос с фоновыми задачами и постановкой их в очередь?

3. Есть ли в PHP библиотеки для отдачи JSON, создания собственных и потребления сторонних Веб-служб? Насколько там вообще реализуема Service-Oriented Architecture? Как обстоят дела с поддержкой REST?

4. Существуют ли и насколько юзабельны Model-View-Controller фреймворки?

5. Как осуществляется ограничение прав исполняемого кода? Защита от его несанкционированной модификации?
 
1. Как в PHP обстоит дело с работой с НЕ связанными с Web Microsoft-технологиями: Active Directory, генерация файлов MS Office, NTLM аутентификация и т.п. ? Большая просьба только, пожалуйста, без флуда про открытые стандарты - в реальной жизни задачи бывают разные, и сопряжение с другими продуктами от MS - не редкость.

например, через COM:
Код:
<?php
// starting word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word = null;
нативненько?
примерно так же поддерживается взаимодействие со сборками .NET.

2. Поддерживается ли распараллеливание на несколько ядер / асинхронное программирование? Как решается вопрос с фоновыми задачами и постановкой их в очередь?

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

3. Есть ли в PHP библиотеки для отдачи JSON, создания собственных и потребления сторонних Веб-служб? Насколько там вообще реализуема Service-Oriented Architecture? Как обстоят дела с поддержкой REST?

зачем библиотеки? функции json_encode более чем достаточно. ну и json_decode если надо пропарсить.
SOAP, REST, XML-RPC все пучком как для доступа так и для создания собственных веб-сервисов.

4. Существуют ли и насколько юзабельны Model-View-Controller фреймворки?

существуют и несколько, юзабельны весьма. флагман
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
, остальное - ИМХО либо трупы, либо поделки для тех, кто не осилил ZF, либо гибриды с CMS. ну все имеет право на существование, я не настаиваю.
для мелких проектов на 1-2 контроллера я вообще рекомендую скручивать свой мини-фреймворк, это тоже не проблема.
если делать не через жопу, то когда проект внезапно начнет расти дальше, его можно быстро поставить на ZF.

5. Как осуществляется ограничение прав исполняемого кода? Защита от его несанкционированной модификации?
средствами ОС.
хм.. какбе код на веб-сервере не модифицируем, если у пользователя есть доступ только через веб.. ну есть еще всякие шифровалки.
да, есть трояны которые тырят адреса и явки FTP из аутлука, лезут по ним и вписывают всякие гадости в HTML/PHP код. сталкивались.
против лома нет приема, хуле.

* * *

вот так всегда, сначала вбрасывают что-то вроде:
.NET больше подходит для enterprise решений со сложной бизнес-логикой
а потом оказывается, что:
действительно не в курсе
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
Останнє редагування:
например, через COM
нативненько?

Поддержка COM - годно :клас: если, конечно, она реализована прямыми руками и не вызывает memory leak'ов. Единственное - не все функции, к сожалению, доступны через COM. В .NET в этих случаях можно дергать Windows API напрямую, не уверен, умеет ли так PHP (учитывая, что он кросс-платформенный).

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

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

фоновые задачи - через крон.

Есть какой-то родной PHPшный API для управления кроном? Ну вот, например, задача - гарантированная доставка сообщения путем вызова веб-сервиса и получения от него подтверждения приема. Причем, 100% доступность Веб-сервиса в любой момент времени не гарантируется.

да, есть трояны которые тырят адреса и явки FTP из аутлука, лезут по ним и вписывают всякие гадости в HTML/PHP код. сталкивались.
против лома нет приема, хуле.

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

вот так всегда, сначала вбрасывают что-то вроде

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

Погуглил, оказывается с ORM в мире PHP тоже не все так плохо, как и с Dependency Injection - вон, в Phemto даже fluent синтаксис прикрутили, молодцы.

НО, тем не менее:

* Отсутствие поддержки Unicode - эпический fail (обещают в PHP 6).
* Отсутствие поддержки пространств имен и возможность переопределять функции, в том числе встроенные - ИМХО серьезный fail для командной работы и/или больших объемов кода
* Reuse кода путем включения исходных файлов - ИМХО беее
* Непонятно, есть ли встроенная поддержка основных структур данных (списки, деревья) и реализация основных алгоритмов поиска/сортировки
* Динамическая типизация - тут на любителя, лично я ярый противник оной
 
Поддержка COM - годно :клас: если, конечно, она реализована прямыми руками и не вызывает memory leak'ов. Единственное - не все функции, к сожалению, доступны через COM. В .NET в этих случаях можно дергать Windows API напрямую, не уверен, умеет ли так PHP (учитывая, что он кросс-платформенный).

пойми одну простую вещь. PHP - это не манифест Коммунистической Партии,
а множество расширений, которые кому надо, тот и делает.
Win32API:
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


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

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

Есть какой-то родной PHPшный API для управления кроном? Ну вот, например, задача - гарантированная доставка сообщения путем вызова веб-сервиса и получения от него подтверждения приема. Причем, 100% доступность Веб-сервиса в любой момент времени не гарантируется.

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

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

Тільки зареєстровані користувачі бачать весь контент у цьому розділі


* Отсутствие поддержки Unicode - эпический fail (обещают в PHP 6).
mb_string?

* Отсутствие поддержки пространств имен
какое еще в жопу отсутствие? а это что?
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

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

возможность переопределять функции, в том числе встроенные - ИМХО серьезный fail для командной работы и/или больших объемов кода
типа function is_file($filename) { return FALSE; } //трахайтесь гады?

* Reuse кода путем включения исходных файлов - ИМХО беее
а как надо?
ну есть автозагрузчики. пишешь new My_Fucking_Great_Class, а он сам подгружает My/Fucking/Great/Class.php. все.

* Непонятно, есть ли встроенная поддержка основных структур данных (списки, деревья) и реализация основных алгоритмов поиска/сортировки

An array in PHP is actually an ordered map. A map is a type that associates values to keys. This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more.
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


* Динамическая типизация - тут на любителя, лично я ярый противник оной

а читать код на 90% состоящий из объявления, приведения и преобразования типов Вы любитель?



Не вбрасывают, а - максимум - заблуждаются :)

ну то Вы, за что Вам и респект.
а остальные как чуют жопой, что заблуждались, так начинают исходить эмоциями.
 
Останнє редагування:
если все ядра будут сортировать массив,
то кто же тогда пользователей принимать будет? а их обычно намного больше, чем ядер.

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

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

Здесь у меня были крамольные мысли о многопоточной обработке заданий, для которых MSMQ с ее поддержкой транзакций выглядит поприятнее. Но и здесь постановку заданий в очередь можно реализовать через связку PHP-COM, а непосредственно обработку - вынести на отдельный бокс и напедалить на том же .NET или даже C++


какое еще в жопу отсутствие? а это что?
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Мдя, вот и верь после этого англоязычным интернетам :(

типа function is_file($filename) { return FALSE; } //трахайтесь гады?

Ага :)

а как надо?
ну есть автозагрузчики. пишешь new My_Fucking_Great_Class, а он сам подгружает My/Fucking/Great/Class.php. все.

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

а читать код на 90% состоящий из объявления, приведения и преобразования типов Вы любитель?

Для объявления в .NET для этого давно придумали волшебное слово var :) всего лишь на 4 символа больше, чем в PHP - вернее, даже на 3, поскольку знак доллара перед переменной в .NET не надо ставить.

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

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

:пиво:
 
Назад
Зверху Знизу