Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Выбор серверного языка. (http://www.flasher.ru/forum/showthread.php?t=139129)

nns2009 23.04.2010 23:06

Выбор серверного языка.
 
В ближайшее время заканчиваю чиитать книгу Мука про ActionScript 3.0 и потом хочу изучить серверную технологию, но не могу определиться какую. Пока основные претенденты:
- C++: самый низкоуровневый, соответсвенно самый быстрый, но и самый сложный.
- C# : очень удобный синтаксис и подсветка кода и нормальная скорость. Насколько я знаю с ним ещё какие-то ASP страницы используются.
- Java: очень похож на ActionScript 3.0
- PHP: самый распространённый среди мелких сайтов, но самый медленный.

Я перечислил самые распространённые языки программирования, но возможно есть и какие-то специфические серверные языки программирования.

Предположим, перед нами стоит 2 задачи:
1) На браузерный запрос пользователя http://example.ru/programm.* ответить:
Код:

<html> <body> <тут содержимое файла content.txt> </body> </html>
2) Если клиент хочет присоединиться через сокет с портом 2009, присоединяем его.
Если клиент прислал число, то высылаем ему удвоенное число.
Если клиент хочет отключиться, отключаем его.

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

Crenth 24.04.2010 05:31

вы забыли про Erlang :)

nns2009 24.04.2010 20:41

Я в типично серверных языках не разбираюсь, т.к. только чуть-чуть программировал на PHP, но мне важно, чтобы был нормальный синтаксис, например как в 4 упомянутых мной языках программирования, а не как в Paschal'еобразных языках. Не могли бы вы привести мне реализацию 2 моих задач на Erlang: всё-таки лучше один раз увидеть код, чем много раз слышать про особенности.:):)
Кстати, я недавно подумал, что серверное программирование достаточно узкая тема:
1) Работа с файловой системой.
2) Работа с базой данных.
3) Принятие, обработка и ответ на запросы.
И всё! Не стоит ли изучить понемногу каждый язык и применять их в зависимости от ситуации?

iflamberg 24.04.2010 20:53

Erlang основан на prolog. Пролог для людей привыкшик к ООП и си-подобному синтаксису - мозгодробителен. Но там решены некоторые проблемы именно серверных языков, как то скалирование(т.е. разгрузка потоков на несколько машин в кластере) и блокировка данных.

Bgg 24.04.2010 21:32

Python ещё забыли.
Цитата:

Сообщение от nns2009 (Сообщение 903206)
И всё! Не стоит ли изучить понемногу каждый язык и применять их в зависимости от ситуации?

Вы работодателю тоже скажете что знаете по чуть-чуть с++,c#,java,erlang и php?

Java:
1)Ответ на запрос http://localhost:8080/ServletApp?method=init
Код:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ServletApp extends HttpServlet
{
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException
    {
            try
            {
                    PrintWriter writer = response.getWriter();
                   
                    if(request.getParameter("method").equals("init")
                    {
                            writer.print("<html> <body> <тут содержимое файла content.txt> </body> </html>");
                            writer.close();
                    }
            }
            catch(Exception e)
            {
                    //error in service
            }
    }       
}


mikhailk 25.04.2010 00:10

java, имхо

nns2009 25.04.2010 11:44

На Java код выглядит вполне нормально. Приложения написанные на Java для клиента требуют .NET Framework или нет?
Не могли бы вы мне также показать код на Python и Erlang: ООП для сервера, мне кажется, не нужно, а на синтаксис - посмотрим. Также забыл сказать, что мне важно, чтобы язык программирования работал не только на собственных серверах, но и на небольших хостингах.

Пока я склоняюсь к C# или Java, но вспомнил ещё про библиотеку Qt для C++: возможно ли её использование на сервере или хостинге?

mikhailk 25.04.2010 15:06

Клиентские приложения, написанные на java, требуют на компьютере пользователя машины java. :) На мой взгляд, народ для клиентов на флэше уже созрел, для клиентов на джаве - еще нет.

На "небольших хостингах" существуют, насколько я понимаю, PHP/Perl, еще кое-что по мелочи. Не нужно ориентироваться не "небольшие хостинги".

nns2009 25.04.2010 22:49

Полазал по интернету просмотрел языки программирования, и вот что нашёл:
По поводу созревания согласен, но к моему удивлению Java второй по популярности язык программирования после C и причём не ++ к моему удивлению: http://www.tiobe.com/index.php/conte...pci/index.html , но Java не поддерживается небольшими хостингами, которые поддерживают PHP и Perl(а если Windows хостинг - то и ASP.NET). Но я не нашёл информации, что поддерживается виртуальными выделенными серверами, не знаете?

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

Пока склоняюсь к PHP, затем - к C#, но и в сторону Java смотрю: всё-таки на втором месте в рейтинге

mikhailk 26.04.2010 11:50

Кстати, помимо самих языков есть еще такие вещи, как "платно/бесплатно".

Надо понимать, что мир OpenSource (PHP,MySQL,Java...) и мир коммерческого ПО (ASP.NET,MS SQL,SFS...) - это две большие разницы. Как по самим продуктам, так и по хостингу под них. Например, использование C# по-любому потребует хостинг на WindowsServer и т.д.

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


Часовой пояс GMT +4, время: 07:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.