Писать на Erlang собственную реализацию SIP-стека для задачи тупого SIP-шлюза???
Если это для бизнеса — забей. Нужно экономить ресурсы — собери embedded версию астериска, с вкомпиленными внутрь необходимыми модулями, и соответствующими экономящими память флагами. Будет жрать минимум ресурсов и прекрасно работать.
Если just for fun — идея переписать астериск на эрланге мне нравится. Появление нормального GPL softswitch, который сможет тянуть большие нагрузки — это плюс :)
Задача сводится к написанию парсера. А их как раз на функциональщине писать и отлаживать одно удовольствие. HOWTO нагуглите легко сотню — есть куча простейших примеров «как написать калькулятор с парсером выражений» на всех возможных языках.
Банк не имеет официального/легальноо доступа к информации о том, на кого оформлен указанный номер мобильного телефона. Потому и не может автоматически заблокировать доступ при смене владельца.
С возвращением функций я ошибся, признаю.
А что с closures?
Можете написать на PHP код, аналогичный моему второму примеру (обратите внимание на параметр у функции-генератора).
Прямое управление памятью это скорее антифича при обучении.
Closures, насколько я вижу, прилеплены ну совсем сбоку.
Функций возрвращающих функции я не нашел. Анонимные функции как параметры я вижу реализованы.
Строгая типизация — посмотрите к примеру как реализовано в Haskell, вместе с очень необычной реализацией перегрузки функций — очень красиво.
Далее, по синтаксическому сахару — PHP если сравнить с Perl, то станет совсем грустно, Вот пример:
map { print "$_\n" } (sort @a);
А вот пример использования функции как значения:
my @a = ( "a", "c", "b" );
sub newprint {
my $prefix = shift;
return sub { print "$prefix$_\n"; };
}
my $prn = newprint("- ");
&$prn($_) foreach sort @a;
1. Linux-based хостинг дешевле чем windows-based при том же объеме выделяемых CPU/памяти/диска. А если хостинг умирает на 10-и клиентах, то проблема не в хостинге, а в ДНК у разработчиков. Некоторые еще помнят времена, когда хостинговые сервера (на которых было куда >10 клиентов) имели характеристики слабее чем нынешние дешевые VDS, и привыкли код таки оптимизировать.
2. Да, хорошие разраобтчики стоят дорого. Вне зависимости от платформы.
3. Ага, то есть нет слов? Или по вашему гендиректор компании, заказывающей сайт, должен уметь отличать говнокод от хорошего, и хакера от ламера? Увы, чаще всего, не умеет.
4. Я не имею отношения к разработке? Спасибо за хорошее настроение с утра :) Ваш комментарий говорит об одной глобальной ошибке большинства разработчиков — делать как удобнее разработчику, а не заказчику (бизнесу).
5. Отличных разработчиков «на .Net/Java» в природе быть не может, также как и отличных разработчиков «на PHP». Ибо разработчик, знания которого ограничены одной платформой и одной парадигмой не может быть «отличным».
Да, по опыту — разработчик на PHP, у которого в бэкграунде есть опыт работы с Java, будет писать более чистый код.
6. facebook это не highload? Пожалуйста, приведите пример близкого по нагрузке ресурса на дотнете.
7. Нет, количественно таких разрабочтиков на .Net практически нет (потому что highload проектов на нем практически нет). На Java вот — есть, в гугле например. Но на рынке труда их маловато, потому что это узкоспециализированные решения. Поэтому бизнесу завязываться на это рискованно.
Вот на RoR — они есть.
8. Ну а phpDaemon-то тут причем? Это весьма узкоспециализированная штука. И я сильно сомневаюсь что на PHP стоит писать реализацию протоколов. К web-разработке имеет весьма опосредованное отношение.
Если он уже работает в команде — законом запрещено изменение трудового договора в одностороннем порядке с ухудшением условий. Т.е. такое возможно, только если вы при этом поднимете зарплату, к примеру.
Да, разумеется alias'ы для переименовани хостов тоже стоит использовать. Для автодополнения куда удобнее, если эти имена вида <клиент>[.<группа серверов>].<cсервер>
Вам важна красота репозитория, или отсутствие файлов в экспорте?
Первое обычно несущественно (если вам это существенно, то вам не подходит git, а также не подходят svn и cvs — у них в любой папке будет подпапка CVS или .svn).
А вот второе может быть очень существенным. И как раз это легко реализуется — помещением внутрь папки .gitattributes с export-ignore .gitattributes.
Собственно все советы начинаются с установки nginx.
Далее:
— настроить отдачу статики через nginx
— желательно избавиться от apache для динамики, заменив на php5-fpm
Если стоит задача сделать _безопасный_ сайт, то C/C++ для новичка противопоказан.
Ибо дырок типа buffer overflow он насажает столько, что мало не покажется. Как раз для новичка безопаснее всего выбирать таки PHP или Perl (т.е. языки высокого уровня).
Но задача интересная — удачи!