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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP vs JAVA, для большого проекта 
:(
    Опции темы
batigoal
Дата 21.6.2005, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Все равно, очень хороший пост.

Я сделал вывод, что в случаях, когда приемов, подобных приведенным Наставником, достаточно для выполнения задачи, ПХП действительно будет лучшим решением. Но Java технологии лучше подходят для решения нетривиальных задач (имхо, конечно).


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Наставник
Дата 21.6.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Так-с и опять я не могу удержаться от высказываний,
Дам-с много уважаемый Domestic Cat

Цитата(Domestic @ 21.6.2005, 18:54)
JDBC : Java код умышленно растянут, без метаданных и свича можно спокойно обойтись

я так пишу, при этом, я считаю это стандартной конструкцией, т.к. не знаю всех примочек языка Java, о чем я упомянул в предыдущем посте.
а теперь по поводу
Цитата(Domestic @ 21.6.2005, 18:54)
А если использовать sql теги из jstl - может тогда код сравним?

да без проблем (к сожалению не знаю -использовать sql теги из jstl-)

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

Код

<?php
mysql_connect("localhost","root","");
mysql_select_db("name_db");

list($title,$author)=mysql_fetch_array(mysql_query("SELECT title,author FROM name_tbl WHERE id=2"));
echo("<br>First column is ".$title." &nbsp;&nbsp; ".$author."<br>/n");
?>


теперь жду Domestic Cat от Вас пример кода, интересно будет посмотреть...

Цитата(Domestic @ 21.6.2005, 18:54)
написано Java приложение, которое сравнивается со скриптом

не понял, что значит, приложение сравнивается со скриптом? Где в PHP скрипт, это стандартная функция, которая реализует те же возможности, что и в приведенном Java приложении...

Цитата(Domestic @ 21.6.2005, 18:54)
Это ж смешно

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

Цитата(Domestic @ 21.6.2005, 18:54)
Создай свой тег или компонент и юзай его в одну строчку

еще раз напишу, ЭТО СТАНДРТНАЯ ФУНКЦИЯ PHP... свой тег или компонент я то создать могу, который будет использовать SMTP, посылать запросы и обрабатывать ответы и т.д. НО зачем мне это надо, когда умные люди уже за меня написали функцию mail().

Цитата(Domestic @ 21.6.2005, 18:54)
пхп курит в сторонке

а вот здесь Вы меня рассмешили... smile smile . В одном проблема, может и PHP ещё пока "курит в сторонке", а вот Java уже «откурилась» -- в отношении программирования под web.
// прошу без обид.

Цитата(3)
а вот написать сайт к-ый раелизует процесс

Не понял, в каком контексте вы использовали слово процесс. Понял как поток, нить (thread)...
А я против и ничего не говорил, согласен если описывать как взаимодействия потоков, то конечно лучше использовать Java, так это не является тривиальной задачей, наподобие интернет-магазина. Хотя, я Вам скажу лично мною было разработана экспертная система для web и основным языком был PHP (пример не тривиальной задачи), мой знакомый ещё круче взял планку, и разработал что-то наподобие системы обучения на основе нейронных сетей, и тоже использовал PHP.

Цитата(3)
для проектов БОЛЬШОГО размера выводит Java далеко вперёд

Ответный вопрос к Вам 3,14, а что значит считать большим проектом, я вот лично не знаю как такое понятие определить... это что в количестве строк измерять что ли?... и почему в Java легче его поддерживать? Кто Вам запрещает использовать в PHP классы, в 5 версии языка, появился механизм try{} catch{}...

Цитата(3)
А вот взаимодействие Java+PHP не очень понял, оно нужно только для случая аплет + PHP сервер?

Почему нет... если вы внимательно просмотрели ссылку http://forum.vingrad.ru/index.php?showtopic=38347, то там вполне нормальный пример приведен, в котором пользователь вводит в форму два числа, эти числа присваиваются переменным PHP, далее эти переменные передаются Java. Java используя класс вычисляет сумму, и отправляет PHP. PHP выводит ответ на экран. --- все очень просто, ведь это просто принцип, далее все зависит от фантазии.

так- с привожу ещё один пример взаимодействия PHP + JAVA

Генерация zip архива на лету (в реальном времени) и выдача пользователю архива...
Сразу оговорюсь, пример из книги, так работоспособность мною не гарантирована, но как пример вроде замечательно

PHP файл, в котором вызываем Java класс Zipper
Код

<?php
$zipObj = new Java("Zipper");
$files = array("/home/designmm/designmultimedia-logs/access_log",
               "/home/designmm/designmultimedia-logs/error_log");

$ret_val = $zipObj->ZipEm(implode("|", $files), "logs.zip");
if ($ret_val == "logs.zip has been created") {
    header("http://www.designmultimedia.com/logs/logs.zip");
} else {
?>
<html>
<head>
    <title> Sorry there was an error <?php echo $ret_val; ?></title>
</head>
<body>
    <h1> I'm Sorry there seems to have been an error </h1>
<br>
    <b> <?php echo $ret_val; ?> </b>
<br><br>
  Please try again some other time.
</body>
</html>
<?php
}
?>


А вот описание на языке Java класса Zipper, который соответственно сохранен в файле под названием Zipper.java

Код

import java.io.*;
import java.util.zip.*;

public class Zipper {
    public int chunk = 8192;
public string Zipem ( String files, String zipped ) {
    String this_file = '';

    if (files.length() < 1) {
        return "You need to have some files to Zip";
    }

    // Output stream
    try {
        FileInputStream foward = new FileInputStream(zipped);
        ZipOutputStream final = new ZipOutputStream(foward);
    } catch (IOException e) {
        return "Cannot create " + zipped + " an error occurred";
    }

    do {
       if (files.indexOf("|" != -1) {
          this_file = files.substring(0, files.indexOf("|") );
          try {
              ZipEntry ent;
              if (this_file.indexOf("/") != -1) {
                  ent = new ZipEntry(this_file.substring(
                        this_file.lastIndexOf("/") +1,
                        this_file.length())
                       );
              } else {
                  ent = new ZipEntry(this_file.substring(
                         this_file.lastIndexOf("\\") +1,
                         this_file.length())
                        );
              }
              final.putNextEntry(ent);
          } catch (IOException e) {
              return "Cannot prepare " + zipped +
                     "Unable to add" + this_file;
          }
          files.substring( files.indexOf("|")+1 );
          byte[] buf = new byte[chunk];

          //Compress that file
          try {
              FileInputStream reader = new FileInputStream(this_file);
           int length;
           while ((length = reader.read(buf, 0 chunk)) != -1) {
               final.write(buf, 0, length);
           }
           reader.close();
       } catch (IOException e) {
           return "Can't compress " + this_file;
       }
    }
} while (files.indexOf("|") != -1);

try {
    ZipEntry ent;
    if (files.indexOf("/") != -1) {
        ent = new ZipEntry(files.substring(
              files.lastIndexOf("/") + 1,
              files.length())
             );
    }  else {
         ent = new ZipEntry(files.substring(
               files.lastIndexOf("\\") + 1,
               files.length())
              );
    }
    final.putNextEntry(ent);
} catch (IOException e) {
     return "Cannot prepare " + zipped + " unable to add " + this_file;
}

byte[] buf = new byte[chunk];

try {
    FileInputStream reader = new FileInputStream(files);
    int length;
    while ((length = reader.read(buf,0,chunk)) != -1) {
        final.write(buf,0,length);
    }
    reader.close();
} catch (IOException e) {
    return "Cannot compress " + files;
}

try {
           final.close();
      }  catch (IOException e) {
           return "Cannot create" + zipped;
      }

      return zipped + " has been created";
  }
}


кстати, в PHP есть встроенная функция для преобразования исходного файла в архив zip.
Так что уважаемый 3,14

Цитата(3)
оно нужно только для случая аплет + PHP сервер?

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

Цитата(Lamer @ 21.6.2005, 19:30)
Я сделал вывод, что в случаях, когда приемов, подобных приведенным Наставником, достаточно для выполнения задачи, ПХП действительно будет лучшим решением. Но Java технологии лучше подходят для решения нетривиальных задач (имхо, конечно).


Полностью с Вами согласен. Спасибо Lamer George.

Это сообщение отредактировал(а) Наставник - 21.6.2005, 23:47


--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
Domestic Cat
Дата 22.6.2005, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата
теперь жду Domestic Cat от Вас пример кода, интересно будет посмотреть...

Код

<c:set var="bid" value="${param.Add}"/>
<sql:query var="books" >
  select * from PUBLIC.books where id = ?  <sql:param value="${bid}" />
</sql:query> 


Цитата
еще раз напишу, ЭТО СТАНДРТНАЯ ФУНКЦИЯ PHP... свой тег или компонент я то создать могу, который будет использовать SMTP, посылать запросы и обрабатывать ответы и т.д. НО зачем мне это надо, когда умные люди уже за меня написали функцию mail().

Ну так тебе никто не мешат пользовать готовые библиотеки тегов, или создать свои, с более серьезной логикой.

А вообще спор бессмысленный... Чтобы понять преимущества той или иной технологии, ее нужно хорошо изучить... А так можно сказать что и интегралы не нужны - изучать долго, а площадь плоской фигуры можно и с линейкой посчитать.
Цитата
а вот Java уже «откурилась» -- в отношении программирования под web.

Видимо, ты большой специалист в Java или может быть, эксперт по веб-технологиям? Не похоже.



--------------------

PM   Вверх
Наставник
Дата 22.6.2005, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Domestic @ 22.6.2005, 00:00)
А вообще спор бессмысленный... Чтобы понять преимущества той или иной технологии, ее нужно хорошо изучить...

Согласен.

Цитата(Domestic @ 22.6.2005, 00:00)
Видимо, ты большой специалист в Java.

А вы наверное Domestic Cat намекаете, что я вообще понятия не имею что такое J2EE и с чем её едят. Согласен Ваш уровень знаний в этой области на порядок выше, но могу Вас уверить, что я неплохо разобрался в этой технологии, а перечислять все термины наподобие EJB, remote EJB, JMS, BMP EB и т.д. я не собираюсь.

Цитата(Domestic @ 22.6.2005, 00:00)
эксперт по веб-технологиям?

а я кстати не утверждал этого, так что не понял...

Ваш код красив, и краток, что не может не радовать, проблема за малым, чего то я не вижу как Вы подсоединились к БД, и как пользователь получит результаты.. или это стоит дописывать самому... smile

Это сообщение отредактировал(а) Наставник - 22.6.2005, 00:12


--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
Domestic Cat
Дата 22.6.2005, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата
Ваш код красив, и краток, что не может не радовать, проблема за малым, чего то я не вижу как Вы подсоединились к БД, и как пользователь получит результаты.. или это стоит дописывать самому... smile

Ах да, забыл
Код

<sql:setDataSource dataSource="jdbc/BookDB" /> 



--------------------

PM   Вверх
ManiaK
Дата 22.6.2005, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

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



Забавно. Спор между PHP и Java очень походит на спор между Java и С++ smile
сторонник Java: наш язык лучше тем, что мы не мучаемся с указателями
сторонник Си++: а мы тоже можем не мучаться - пишем "статические обёртки" и юзаем их smile
Ничего не напоминает? smile Вот например это:
Цитата(Domestic @ 22.6.2005, 00:41)
Создай свой тег или компонент и юзай его в одну строчку.

Но это так, забавное совпадение...

(Всё, что написано ниже - мои догадки; с обоими языками знаком поверхостно и чисто теоретически, потому правьте, если не прав где-то)
"Java - это диалект Си++". Из этого языка убрано только то, что нельзя было оставить языку интернета; по сути это вычищенный Си++. PHP же больше походит на мощный скрипт, синтаксис которого позаимствован из Си++. Я полагаю Ява всегда будет на шаг впереди PHP по возможностям хотя бы уже потому, что он более широкопрофильный язык. С другой стороны, если Ява компоненты нет возможности "компилировать" и исполнять, а не интерпретировать, то тут преимущество должно быть (чисто логически) у PHP в скорости - его функции, заранее скомпилированные на сервере должны выполняться несравнимо быстрее, нежели интерепретируемые модули Явы. Но глупо было бы - скорее всего нечто вроде скомпилированного "джентельменского набора" есть и на Ява-серверах.

Кстати, буду благодарен, если мне всунут в руки какую-нибудь хорошую книжку по Яве в электронном виде.

Это сообщение отредактировал(а) ManiaK - 22.6.2005, 01:16
PM MAIL WWW   Вверх
3,14
Дата 22.6.2005, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Цитата
Ответный вопрос к Вам 3,14, а что значит считать большим проектом, я вот лично не знаю как такое понятие определить...

В общем да, ну можно ещё взять время необходимое на разработку, но этот критерий хуже, как правило большие проекты не пишуться в одиночку, там есть люди к-ые составлют требования к проекту, есть те кто работает над БД, есть те кто над кодом работает, и это разные люди
Цитата
и почему в Java легче его поддерживать? Кто Вам запрещает использовать в PHP классы, в 5 версии языка, появился механизм try{} catch{}...

О преимуществах Java я писал выше, топик не особо большой - найти не сложно. На счёт обьектно-орентированности PHP - можно там к готовой схеме БД получить её ООП вариант, чтоб работать с классами, а не SQL запросами, ибо читабильность кода из за них резко снижается? Не работал в PHP с ООП, поэтому ничего про него сказать не могу, но то что нашёл через Google оставило не прятное впачатление, может кто нить независимый подкинет вариант задачи, а и сравним ООП схему на Java и PHP + пара примеров по коду выборочно...

Цитата(ManiaK @ 22.6.2005, 01:15)
"Java - это диалект Си++". Из этого языка убрано только то, что нельзя было оставить языку интернета; по сути это вычищенный Си++

Ну если только с большой натяжкой, после всех этих "вычищений" от самого C++ там не так много и отсалось



--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Наставник
Дата 22.6.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(3)
сравним ООП схему на Java и PHP

А что сравнивать, итак должно быть понятно, ООП схема PHP беднее возможностей ООП схемы Java. Но это не означает, что большой web-проект нельзя реализовать на PHP. Наоборот можно, и даже нужно, т.к. это проще и быстрее.

И вообще хотелось бы услышать ответ от каждого участника на следующий вопрос ->
Какой язык программирования выберите Вы, для того чтобы реализовать довольно крупный web-проект (пусть будет интернет-магазин)?
Мой выбор- это PHP
Всего ответов 1. Результаты за PHP - 1 : за Java 0

Это сообщение отредактировал(а) Наставник - 22.6.2005, 10:43


--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
Irokez
Дата 22.6.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата
Какой язык программирования выберите Вы, для того чтобы реализовать довольно крупный web-проект (пусть будет интернет-магазин)?
Мой выбор- это PHP
Всего ответов 1. Результаты за PHP - 1 : за Java 0

по-моему интернет магазин - это не такой уж и крупный проект
когда я создавал данную тему, мне намечался проект системы бронирования номеров гостиниц, билетов и документооборота для одной крупной организации, причем данные компоненты должны были быть связаны. В течении обсуждения я решил, что данный проект на пхп писать было бы очень затруднительно. Поэтому:
интернет-магазин - PHP
а вот то что я описал - скорее всего - Java
PM   Вверх
3,14
Дата 22.6.2005, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

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



Обычный интернет магазин - без разницы, это зависит от того с чем ьы лучше знаком, разве что на php предлагается больше готовых решений, но если это действительной крупный проект, то Java.
PHP 1 - Java 1


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Wowa
Дата 22.6.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата(Irokez @ 22.6.2005, 11:49)
по-моему интернет магазин - это не такой уж и крупный проект
когда я создавал данную тему, мне намечался проект системы бронирования номеров гостиниц, билетов и документооборота для одной крупной организации, причем данные компоненты должны были быть связаны. В течении обсуждения я решил, что данный проект на пхп писать было бы очень затруднительно. Поэтому:
интернет-магазин - PHP
а вот то что я описал - скорее всего - Java

имхо, вполне реально на PHP такую систему сделать.
PM WWW   Вверх
Irokez
Дата 22.6.2005, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


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

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



Цитата(Wowa @ 22.6.2005, 15:35)
имхо, вполне реально на PHP такую систему сделать.

реально, но вот поддерживать ее и гарантировать ее устойчивость к сбоям было бы по-моему трудно
PM   Вверх
Mal Hack
Дата 22.6.2005, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



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

Все зависит от конкретной задачи, знания языка программистом. Есть конечно тонкости, которые говорят четко в пользу одного или в пользу другого языка. Но это уже для конкретной задачи.
PM ICQ   Вверх
Наставник
Дата 22.6.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Irokez @ 22.6.2005, 12:49)
когда я создавал данную тему, мне намечался проект системы бронирования номеров гостиниц, билетов и документооборота для одной крупной организации, причем данные компоненты должны были быть связаны. В течении обсуждения я решил, что данный проект на пхп писать было бы очень затруднительно. Поэтому:
интернет-магазин - PHP
а вот то что я описал - скорее всего - Java


Да уж, ну тогда сами думайте... уж не знаю как Вас убедить-то... ну и что такое документооборот.. а такое повсеместно встречается в каждой третьей CMS. написанной на PHP.
Бронирование билетов, а тут что сложного -то?. Есть какая-нибудь БД, в которой хранятся информация о билетах... тут просто надо работать с БД... и все, тем более если Вам нужно использовать механизм транзакций, то Вам вполне подойдет и MySQL, а если что-нибудь более серьезное, наподобие курсоров или триггеров, то пожалуйста используйте MS SQL. Вполне стандартные задачи.

 ! 
 
Наставник, самоуправством попрошу не заниматься. Здесь не раздел опросов.


Это сообщение отредактировал(а) Domestic Cat - 22.6.2005, 20:34


--------------------
Богатство языка определяет широту мысли
Персональный сайт >>
PM MAIL WWW   Вверх
batigoal
Дата 22.6.2005, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


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

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



Просто здесь мало людей, которые достаточно квалифицированно разбираются и в том, и в другом.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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