Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отличия C# и Java 
:(
    Опции темы
nns2009
Дата 27.4.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



Недавно закончил изучение основ ActionScript 3.0 для Flash и теперь решил заняться серверным программированием, но встал вопрос, какой язык программирования выбрать? Всего у меня 4 варианта: C++, C#, Java и PHP. PHP я, скорее всего буду изучать в дальнейшем(так как, всё-таки самый популярный серверный язык программирования и поддерживается всеми хостингами), но на нём вроде как нельзя запрограммировать онлайн игру в реальном времени + он медленный. C++ слишком сложный и менее удобный. А вот Java и C# - то что надо!
Принципиальных отличий в коде мало, а меня интересует результат: что на чём запускается(Windows, Linux, компьютер, мобильник, сервер...), скорость, вес приложения. Также интересует: возможно ли встраивание Java кода в HTML, как в ASP.NET, возможно ли с помощью Java, C# запрограммировать онлайн игру в реальном времени?
PM MAIL   Вверх
jk1
Дата 27.4.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

что на чём запускается

Для Java-приложений многое зависит от задач и выбора интрументов: если будете писать сервер руками на сокетах, то сможете поднять везде, где есть java-машина и дадут сокет. Если используете фреймворки, то потребуются контейнеры/сервера с их поддержкой. Однако большинство из них вполне кроссплатформенны (маленький камешек в огород ASP.NET ).
Цитата

скорость

Конкретные значения скорости работы для динамически компилируемых языков замерять очень проблематично, однако если критична real-time работа, в Java предусмотрены соответствующие инструменты
Цитата

возможно ли с помощью Java, C# запрограммировать онлайн игру в реальном времени? 

конечно возможно, это же Тьюринг-полные языки.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
iluvatar
Дата 27.4.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: нет
Всего: 4



запрограммировать можно все что угодно на чем угодно. вопрос времени
что значит игра в реал-тайме? html или flash?
какое значение имеет вес приложения если 80% будет занимать графика и еще 20% - БД ?

Цитата(nns2009 @  27.4.2010,  13:31 Найти цитируемый пост)
Windows, Linux, компьютер, мобильник, сервер

вот это выносит мне мозг, что вы имели в виду? кроссплатформенность?

Цитата(nns2009 @  27.4.2010,  13:31 Найти цитируемый пост)
возможно ли встраивание Java кода в HTML

возможно вы имели в виду jsp, jsf ?


опишите что вы хотите получить в результате.
PM MAIL ICQ   Вверх
nns2009
Дата 27.4.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



Цитата(jk1 @  27.4.2010,  13:08 Найти цитируемый пост)
Для Java-приложений многое зависит от задач и выбора интрументов: если будете писать сервер руками на сокетах, то сможете поднять везде, где есть java-машина и дадут сокет. Если используете фреймворки, то потребуются контейнеры/сервера с их поддержкой. Однако большинство из них вполне кроссплатформенны (маленький камешек в огород ASP.NET ).

Можете уточнить:
1) Есть ли в большинстве хостингах Java-машина и дают ли на них сокет?
2) Что за фреймворки? Это что-то типа ASP.NET?

Меня интересуют 3 основные возможности(можете показать их реализацию на Java, если это возможно):
1) На браузерный запрос пользователя http://example.com/default.html выслать ему страницу:
                 <html><body><тут содержимое файла content.txt></body></html>
2) На браузерный запрос пользователя, который ссылается на несуществующую страницу ответить:
                 <html><body>Нет такой страницы</body></html>
3) Возможность создания онлайн игр. Насколько я понимаю относительно Java всё делается так:
     1) На сервере запускается программа, которая отлавливает подключение/отключение клиентов.
     2) Клиенты, подключившись, 40 раз в секунду посылает на сервер информацию о произведённых пользователем действиях.
     3) Сервер 40 раз в секунду отсылает обновлённую информацию всем клиентам.
Это делается так или как-то по другому?

Добавлено через 5 минут и 11 секунд
Цитата(iluvatar @  27.4.2010,  13:12 Найти цитируемый пост)
что значит игра в реал-тайме? html или flash?

Не по ходам(как морской бой), а 40 раз в секунду(как Countre Strike(извиняюсь если неправильно написал)).


Цитата(iluvatar @  27.4.2010,  13:12 Найти цитируемый пост)
вот это выносит мне мозг, что вы имели в виду? кроссплатформенность?

Где запустится, если сделать все необходимые установки(например программа на C# запускается на Windows без дополнительных установок).
Кстати, можно ли запустить программу на C# на других ОС.

Цитата(iluvatar @  27.4.2010,  13:12 Найти цитируемый пост)
возможно вы имели в виду jsp, jsf ?

Я имел ввиду, можно ли на Java делать как на PHP и ASP.NET.
PM MAIL   Вверх
Vasay
Дата 27.4.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата

запрограммировать можно все что угодно на чем угодно. вопрос времени


Не думаю, что Вам удастся написать сервер для реал-тайм игры на PHP  smile 


nns2009

Имейте ввиду, что программирования сервера для реалтайм игры (клиет, я так понял, на flash) - не имеет ничего общего с web программированием.

Впринципе и Java и C# тут хороши. Единственное, будете писать на С# - старайтесь не выходить за рамки Mono, иначе стоимость серверов (с Windows)  будет сильно бить по карману.

Если говорить о web программировании, то тут ИМХО Java вне конкуренции. Во многом благодаря стараниям "альтернативной" команды Spring Source, альтернативной в кавычках, так как их Spring Framework фактически стандарт де-факто в web разработке с помощью Java, хотя, последняя версия спецификации EJB (типа, стандарт де юре) - стала поворачиваться "к лесу задом", но насколько повернулась к разработчикам передом - не скажу, не успел пока как следует ознакомиться. Да и Spring Source на месте не стоят - создали Spring Roo, продвигают Grails (я просто в восторге - еще б нормальную поддержку со стороны IDE , хотя бы родного SpringSource Tool Suite, правда, говорят, в коммерческой версии idea все прекрасно)


У .NET с качеством и разнообразием web фрэймворков на мой взгляд не так хорошо. Хотя, в MS тоже на месте не стоят да и к "альтернатившикам" прислушиваются (тот же ASP.NET MVC Framework, насколько я знаю, пришел в мэйнстрим из народа).




--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
jk1
Дата 27.4.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 40
Всего: 75



Цитата

Меня интересуют 3 основные возможности

1) Servlet API + JSP будет самым простым и понятным решением
2) Использовать фильтр сервлетов (см. пункт 1), например URLRewrite
3) Не могу сказть насчет того, как это делается в современных играх, однако возможно делать вызовы из сервера клиенту с помощью любой реализации спецификации Comet

Рекомендую вот этот обзорный цикл статей http://www.java-course.ru/. После него все должно встать на свои места, по крайней мере относительно Java.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
nns2009
Дата 27.4.2010, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



А что посоветуете скачать в качестве компилятора и среды разработки?
PM MAIL   Вверх
Vasay
Дата 27.4.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата

А что посоветуете скачать в качестве компилятора и среды разработки? 


NetBeans из бесплатных на мой вкус - лучший.

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

Есть базирующиеся на eclipse  среды (  типа SpringSource Tool Suite  ). 

Есть JDeveloper - среда красивая, но ИМХО глючная, да и заточена под продукты Oracle.

Есть коммерческая idea. Многие считают ее лучшей. У нее, кстати, есть и бесплатная версия, но, слегка, урезанная в плане функциональности.


А компилятор - часть JDK. Так что все что нужно - это JDK .

Это сообщение отредактировал(а) Vasay - 27.4.2010, 14:08


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
nns2009
Дата 27.4.2010, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



А перед установкой NetBeans(которую я сейчас скачиваю) нужно ли установить JDK?
PM MAIL   Вверх
Vasay
Дата 27.4.2010, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



nns2009

Обычно нужно, но есть варианты с JDK в комплекте


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
nns2009
Дата 27.4.2010, 20:59 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



Всё установил, всё работает. Теперь некоторое время буду изучать Java после чего выскажу своё мнение о нём.
PM MAIL   Вверх
nns2009
Дата 28.4.2010, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



Сейчас читаю http://www.java-course.ru/ . Дошёл до базы данных, а вот тут ничего не понятно(сам код SQL запроса понятен, т.к. я немного работал с БД на PHP, а не понятно куда его совать, куда совать JDBC и т.п.). Не подскажите? (с командной строкой я никогда в жизни не работал.)
PM MAIL   Вверх
Shtrun
Дата 29.4.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 14.2.2010

Репутация: нет
Всего: нет



Не обязательно работать с командной строкой. Ты MySQL установил? Все работает?
На каком этапе ты остановился и у тебя не получается?
PM MAIL   Вверх
nns2009
Дата 29.4.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



1) Скачал mysql тут: http://www.softportal.com/get-65-mysql.html, установил в C:\Program Files\MySQL\MySQL Server 5.1
2) Скачал connector/j 5.0.6 тут: http://soft.mydiv.net/mac/files-MySQL-Connector-J.html, распаковал в C:\Program Files\MySQL\mysql-connector-java-5.0.6

После этого на сайте http://www.java-course.ru/ написано:
Код

После установки MySQL вы можете запустить sql-скрипт, который предназначен для создания таблиц и заполнения их тестовыми данными. 
Сделать это просто - скопируйте приведенный код в файл students.sql, после этого зайдите в каталог <MySQL_DIR>/bin. 
И запустите команду. Само собой файл student.sql нужно положить туда же - на время. 
Хотя я часто прописываю путь в переменной PATH до MySQL - это удобно. Что и Вам советую.

mysql -u root -p < students.sql

Всё после слов "И запустите команду"(совершенно непонятно какую) я не понял и пропустил.

3) Создал проект TestJDBC(в NetBeans 6.8) и сохранил в C:\Users\Nns2009\Documents\Java\Тренировки\Первые приложения\TestJDBC.
4) В папке src создал файл TestJDBC следующего содержания(как на http://www.java-course.ru/ только красиво оформлено) :
Код

import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestJDBC
{
    public static void main(String args[])
    {
        try { System.setOut(new PrintStream("out.txt")); }
        catch (FileNotFoundException ex)
        {
            ex.printStackTrace();
            return;
        }

        System.out.println("Copyright 2009, Anton Saburov");
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/students";
            con = DriverManager.getConnection(url, "password", "password");
            stmt = con.createStatement();
            rs = stmt.executeQuery("SELECT * FROM students");
            while (rs.next())
            {
                String str = rs.getString(1) + ":" + rs.getString(2);
                printString(str);
            }
        }
        catch (Exception e) { e.printStackTrace(); }
        finally
        {
            // Эта часть позволяет нам закрыть все открытые ресуры
            // В противном случае возмжожны проблемы. Поэтому будьте
            // всегда аккуратны при работе с коннектами
            try
            {
                if (rs != null)
                    rs.close();
                if (stmt != null)
                    stmt.close();
                if (con != null)
                    con.close();
            }
            catch (SQLException ex)
            {
                ex.printStackTrace();
                System.err.println("Error: " + ex.getMessage());
            }
       }
    }

    // Снова используем этот метод для вывода из-за кодировки
    public static void printString(Object s)
    {
        try
        {
            System.out.println(new String(s.toString().getBytes("windows-1251"), "windows-1251"));
        }
        catch (UnsupportedEncodingException ex)
        {
            ex.printStackTrace();
        }
    }

}


4) В папку src скопировал файл mysql-connector-java-5.0.6-bin из папки C:\Program Files\MySQL\mysql-connector-java-5.0.6 .
5) Запустил проект в NetBeans.
6) Получил, что-то вроде:
Код

run:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at TestJDBC.main(TestJDBC.java:27)
BUILD SUCCESSFUL (total time: 0 seconds)


По идее пример не должен работать правильно(т.к. я не создавал таблицу), но ошибка тогда должна выскакивать совершенно другого рода.
В архиве я прилагаю снимки некоторых папок.

Это сообщение отредактировал(а) nns2009 - 29.4.2010, 20:04

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ______.rar 259,28 Kb
PM MAIL   Вверх
nns2009
Дата 29.4.2010, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: 1
Всего: 1



Хорошие новости:
Скачал connector/j 3.0.16, скопировал файл mysql-connector-java-3.0.16-bin-ga.jar в папку TestJDBC распаковал его и снова запустил проект. Теперь окно с ним выглядит так, как на приложенной картинке, а ошибку выдаёт такую:
Код

run:
java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.ConnectException: Connection refused: connect

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused: connect
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
        at com.mysql.jdbc.Connection.<init>(Connection.java:452)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at TestJDBC.main(TestJDBC.java:29)


** END NESTED EXCEPTION **


        at com.mysql.jdbc.Connection.createNewIO(Connection.java:1875)
        at com.mysql.jdbc.Connection.<init>(Connection.java:452)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at TestJDBC.main(TestJDBC.java:29)
BUILD SUCCESSFUL (total time: 2 seconds)

Это уже в тему(как раз из-за не созданной таблицы, наверное). Теперь вопрос: как её(таблицу) создать?
И неужели для каждого проекта потребуется распаковывать файл mysql-connector-java-3.0.16-bin-ga.jar в папку src?
Хотелось бы поместить этот файл в какую-нибудь папку, прописать как-нибудь к нему путь и забыть про него.

Это сообщение отредактировал(а) nns2009 - 29.4.2010, 20:12

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  Test_JDBC.jpg 69,06 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1113 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.