|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 63508.6847 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
12.10.2011, 15:33
|
Start Post: Программист на...
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
|
Всем привет.
Нужен программист написать многопоточный серверный софт.
Работа будет с АПИ по СОАП протоколу ( http://ru.wikipedia.org/wiki/SOAP).
Крайне важна стабильность работы и максимальная скорость.
Написать нужно чтобы работало на сервере фрибзд. Однако мне отсоветовали ПХП ввиду отсутсвия нормальной многопоточности.
Поэтому тут теперь цена вопроса стоит
Нужно либо функция на ПХП реализованная, которая примет массив данных и будет с ними работать в многопоточном режиме пока они не закончаться. Либо же полностью софт на более быстром серверном языке типа руби или чего-то такого
Естественно функция пхп будет стоить дешевле, чем софт на руби
Вобщем жду прежложений от программистов или может рекоммендаций к кому обратиться (друзья кодеры, коллеги кодери и т.д.). Так как пока как видно сам не знаю что конкретно и как лучше сделать. Либо подешевле пхп, потом если не будет пхп устраивать - искать программера на другом языке. Либо сразу дороже, но не факт что будет значительно лучше
П.С. да забыл, так же важно развитие и поддержка софта на будущее. Будут добавлятся новые моменты и т.д.
|
|
|
14.10.2011, 06:46
|
#12
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Цитата:
Сообщение от rushter
|
кстати, на фотке с ребенком - это Лев Валкин, один из тех перво... авторитетов в функциональном программировании, да и в программировании вообще
а по языкам - каждому свое применение.
Надежность, скорость, сложность, удобство, масштабируемость и тд. - все это цели, которые важны в той или иной задаче, а языки/технологии обладают такими свойствами в разной степени.
Эрланг создавался компанией ericsson для обслуживания самой(?) мощной серийной(?) цифровой АТС. А это значит, что в язык фундаментально заложено: 1) надежность/стабильность 2) хорошая работа с сетевыми потоками
Все языки, про которые слышали типичные представители сео индустрии или им сочувствующие - это семейства иперативных языков: php, c, python, javascript, java и тд. Модель этих языков подразумевает последовательное исполнение операторов шаг за шагом.
erlang/ocaml/haskell - функциональные языки - в них нет указаний что за чем выполнять, зато описывается как решать задачу. Это важное свойство таких языков, называется декларативностью. Ну короче, читайте википедию кому интересно. Я сам не особо приобщен к этому.
Функциональные и императивные языки могут сочетать в себе свойства друг друга.
конкретно Лев с командой использует эрланг для проекта в realtime web - управление информационными потоками веба в реальном времени. Их продуктом в том числе пользуются крупнейшие мировые сми.
|
|
|
14.10.2011, 07:26
|
#13
|
кодер-энтузиаст
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
|
Цитата:
Сообщение от chesser
кстати, на фотке с ребенком - это Лев Валкин, один из тех перво... авторитетов в функциональном программировании, да и в программировании вообще
|
Да, вот он - http://lionet.livejournal.com/
Не сказал бы, что он какой-то гуру, но его aboutecho.com хорошо живет и приносит прибыль, у Еминема система комментов на его движке.
Цитата:
Эрланг создавался компанией ericsson для обслуживания самой(?) мощной серийной(?) цифровой АТС. А это значит, что в язык фундаментально заложено: 1) надежность/стабильность 2) хорошая работа с сетевыми потоками
|
Вот, кстати, еще интересное:
Цитата:
Сегодня получилось пообщаться с Робертом Вирдингом, сотрудником Erlang Solutions и одним из, фактически, соавторов Erlang.
Он сказал очень интересную вещь: оказывается те проблемы производительности, с которыми мы сталкиваемся на краевых случаях при реализации системы на Erlang-е вообще не прогнозировались. В Эриксоновских станциях все данные протекают условно аппаратно, а на эрланге лишь контролирующий софт.
Но видимо мужики оказались настолько крутыми инженерами, что делая просто обвязку они получили не руби, а эрланг, который способен прососать через себя гигабиты трафика, гигабайты памяти и не упасть в конвульсиях сборки мусора.
http://levgem.livejournal.com/369959.html
|
|
|
|
14.10.2011, 10:39
|
#14
|
кодер-энтузиаст
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
|
Кстати говоря:
Цитата:
- Erlang действительно учится за две недели, это не миф
- Если у вас задача допускает или требует распаралеливания - выбор очевиден
- Когда есть реальная задача, требующая решения - изучение языка идет на порядок эффективнее, чем просто чтение книжек, даже с решением упражнений
http://grey-kristy.livejournal.com/87271.html
|
|
|
|
14.10.2011, 11:22
|
#15
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
а где-то в сети болтается видео-каст с Львом Валкиным, где он рассказывает в каких случаях есть смысл переходить с того же пхп на эрланг, рассказывает про их опыт в эхо. Попробую найти. Ну там, причем, именно больше для менеджеров, нежели для прогеров.
http://lionet.livejournal.com/96189.html - а вот его свежий пост
вот были бы эти вакансии года на 3-4 раньше - пошел бы на собеседование не думая: не работа, а мечта прям. Но сейчас я уже оброс своими планами и амбициями, и как-то отказываться от них - себе изменить.
|
|
|
14.10.2011, 16:13
|
#16
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,893
Бабло: $322264
|
Цитата:
Фейсбук на php и вроде держится )
|
ага, у них там ХипХоп который делает преобразование php->c++
https://github.com/facebook/hiphop-php
Цитата:
Отличительной особенностью языка является модель легковесных процессов (аналогично нитям в OpenMP). Вот почему язык стимулирует создание большого количества параллельных процессов. Они изолированы друг от друга и не имеют общего состояния. Между процессами можно установить связь и получить сообщение об их состоянии. Для взаимодействия процессов используется асинхронный обмен сообщениями. Процесс имеет свою очередь сообщений, а при ее обработке используется сопоставление с образцом.
Отсутствие необходимости блокировки доступа к состоянию процесса для синхронизации их взаимодействия упрощает разработку. Для работы с ресурсами, как правило, создаётся процесс-монитор.
По мнению разработчиков, важным преимуществом языка является принцип работы процесса «let it crash» («пускай падает»). Вместо перехвата ошибок и попытки продолжения работы, часть программы, содержащая рискованный код, выделяется в отдельный «процесс-смертник», который система завершает в случае возникновения ошибки, а процесс-родитель получает соответствующие сообщения и обрабатывает их. Это позволяет избавиться от многочисленных проверок.
|
нехуйски канешно.
Последний раз редактировалось WebNinja; 14.10.2011 в 16:19.
|
|
|
14.10.2011, 16:59
|
#17
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Цитата:
Сообщение от WebNinja
|
так я знаю поэтому и упоминул про акселирацию пхп
|
|
|
14.10.2011, 17:06
|
#18
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,893
Бабло: $322264
|
пхп для них тяжелое наследие если приходится идти на такие свершения как написание ХипХопа.
|
|
|
14.10.2011, 17:13
|
#19
|
Je suis moine ivre
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
|
Надо Dubstep еще написать - php->asm
|
|
|
16.10.2011, 17:53
|
#20
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
Цитата:
Сообщение от WebNinja
По мнению разработчиков, важным преимуществом языка является принцип работы процесса «let it crash» («пускай падает»).
нехуйски канешно.
|
там Лев, доказывая несостоятельность node.js, вот что сказал про эрланг:
Цитата:
Вот что поставили во главу угла в Эрланге при его проектировании, давайте сравним:
1. Система должна работать 24/7 и никогда не останавливаться, даже для апгрейда кода.
2. Ошибки всегда бывают, и ошибок избежать нельзя. Нельзя рассчитывать на то, что весь код, который релизится на продакшн, будет идеально и кооперативно себя вести. Для этого существует несколько ортогональных механизмов борьбы с ошибками в рантайме:
3. Связанные процессы: процесс, случайно умирая, посылает убивающий сигнал всем другим процессам, которые от него зависят (его родителям, детям, etc).
4. На основании #3 построены деревья супервизоров, рестартующие сбоящие компоненты, если наступает внутри компонентов фатальные ошибки.
5. Компоненты общаются между собой атомарными асинхронными сообщениями, передающимися по значению: меньше coupling между компонентами.
6. Процессы не имеют общую друг с другом память. Единственная возможность испортить память другому процессу — послать ему сообщение с просьбой на него прореагировать.
|
это к слову о том, что лучше: не давать ошибкам появляться, или же всегда быть хорошо готовым к их возникновению
|
|
|
16.10.2011, 18:26
|
#21
|
grablab.org
Регистрация: 18.09.2007
Адрес: Thailand
Сообщений: 4,893
Бабло: $322264
|
да на кой хуй нужен этот node.js - использовать джаваскрипт на стороне сервера можно разве что от безысходност ну или следуя каким-то новым трендам моды.
|
|
|
|