Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:23 06.07.25 
Клубове/ Компютри и Интернет / Java Пълен преглед*
Информация за клуба
Тема Една малко по-дълга лекция. [re: Milo Minderbinder]
АвторNeverMind (Нерегистриран) 
Публикувано25.08.02 19:35  



Нека да разгледаме нещата различно. Защото някой хора бъркат технология с език за програмиране и обратно.

Значи Java vs. C#
Нито Sun, нито MS откриват топлата вода. Garbage collectora го има доста отдавна и не е нова идея. Да вземем VB или Делфи или Perl. Там кой освобождава паметта. Не съм забелявал програмистите да го правят. Така, че там си има gc. И това не е нова идея. :-)

Идеята за Виртуална Машина. Да кажем, че в сегашния си вариант е на Sun. Но да кажем езика Perl е интерпретатор и той работи на много платформи. Значи има пак нещо, което осъществява анализ на кода и друго дето е системно зависимо и осъществява интерпретацията. Само, че нещата са омесени в едно. Понеже Perl е продукт с отворен код, там няма проблеми да се разпространява кода. Идеята за Виртуална Машина съществува също във VB (Visual Basic). Някой дето се е занимавал с него знае, че там може да се компилира до P код. И после това exe за да се изпълни трябва един "vb.dll". Sun отиват един ход напред дори пред VB на MS и правят виртуалната машина да работи на различни платформи.

Както виждате до тука нищо ново, никой не е измислип.

Как работи една ВМ (Виртуална Машина). В общия случай ВМ на Java мина през всички етапи. В първата си версия си беше чист интерпретатор. Интерпретираше байт кода (на .class файла). После дойде JIT (Just In Time) компилатор. Т.е. байт кода се компилира до машинно зависим код и после се изпълнява. В този случай се достига бързина на изпълнение почти като на native приложенията. Само, дето има един проблем. Доста време се губи докато се компилира байт кода до машинен код. И пак става бавно. Дори по-бързо става ако кода се интерпретира а не да се компилира и после да се изпълнява. След това от Sun измислиха HotSpot ВМ. Това вече може да се смята за тяхно нововъведение. Значи идеята на HotSpot е да се локализират местата, които се изпълняват най-често и на тези места да се прилага JIT а на местата, където се изпълняват най-малко да се прилага интерпретиране. Т.е. HotSpot е смесица между JIT и интерпретатор и се пуска едно като се прави опит да се предвиди, кое ще е по-бързо. Сега java-та има опция -server която пуска ВМ като JIT и се препоръчва за сървъри. Иначе по подразбиране си тръгва като HotSpot ВМ.

Май MS я докараха до JIT само, тях ги домърза да правят HotSpot. :-)

Друга разлика между ВМ, тази по скоро е на ниво компилатор.
MS вкарват още един слой в компилатора и това е анализатор на езика. Т.е. можеш да не ползваш С# а примерно синтаксис на Basic, Perl, Pascal и разни други такива. Също не е нова идея. MS го имат това във IE-то където можеш да пишеш скриптове на VB или JavaScript. Ама не можаха да наложат VB-то и всички ползват JavaScript. :-))

Друга разлика на ниво ВМ е сигурността. В Java има един файл където описваш правата на ВМ. Това го няма в С#. Сега пък MS и security. Аз май много искам. :-) Това до сега не съм видял някой да го ползва под Win, но под Unix (Linux) има смисъл.

Като API-та Java-та е доста напред. Тепърва C# има да догонва.



Сега да видим и технологиите .NET или J2EE.

Идеята е да се направи Distributet Computing. Тази идея е толкова стара и през толкова реализации мина, че не знам дали ще мога да ги изброя. :-)

Първо беше RPC (Remote Procedure Call) да викаш една процедура от друг компютър. Да и пращаш данните и тя да ти връща отговора. Това вървеше разбира се на *nix платформи. :-)

После големите играчи направиха CORBA, MS бяха в групата разработваща CORBA ама се отцепиха и направиха COM, DCOM и COM+. Идеята е да имаш обек и да му викаш методите от друг компютър. CORBA е независима от ОС-а и езика. Има някъв протокол, който върви по TCP и така. Не знам по какви проблеми но не се наложи. Тъкмо в това време Java-та набираше скорост и Sun изкараха RMI (Remote Method Invocation). Същата идея, само дето е фиксирано до един език. Пак след това Sun изкараха EJB същата идея в общия случай. Само дето вкарваше малко стандартни и лесни методи за писане на обекта на сървъра и клиента на другия компютър. Отново същата идея но фискирана пак само до Java.

MS някъде преди това са измислили SOAP (Simple Object Access Protocol) но го заразвят. IBM го доразвива и сега този протокол е фрее. И цялата .NET технология се крепи на SOAP.

Основните разлики са следните:
1. Работи по HTTP(S) протокола. Т.е. минава през всички proxy-та и така нататък. Аз в момента съм зад едно яко proxy и само HTTP връзки мога да правя. EJB-то минава по TCP.
2. Използва XML за описание на структурата си. EJB-то е в двоичен формат.
3. EJB то може да поддържа сесия. Т.е. имаш един обект инциализираш го и си му викаш методи и той си пази сесията. Докато SOAP няма сесия. Той е като RPC. Засилваш данните, сървъра ги обработва и после ти връща резултат, и край връзката се разпада.
4. EJB-то е работи само с Java. SOAP-а не зависи от езика. Сървъра може да бъде на един език. Клиента на друг. Те изпозлват XML over HTTP. Естествено никой не пише или не парсва XML на ръка. Има си разни инструменти и библиотеки дето вършат това за програмиста, както при EJB-тата.

Те това е за Distributet Computing




После има така наречените WWW технологии.

ASP vs JSP, Servleti
ASP + COM vs JSP + Java Beans.

За тях ме мързи да пиша. :-)



В общия случай и двете технологии са доста близки. Има основни разлики в EJB-то и SOAP-а.

Пък, който иска да ползва Java + SOAP да си дръпне има един фрее модул от Apache и е готов. Освен това на IBM WebSpehere Development Studio ги има и повечето технологии на куп EJB, SOAP, JSP, Servleti, CORBA ... и много други. Само дето не можеш да ползваш С#. :-)

Аз мисля да оставам на Java и ако трябва да ползвам SOAP със Java да ползвам нещо фрее. Както правя до сега за JSP и Servlet-и. Щото както някой каза трябва да дадеш майка си и баща си за да купиш софтуер за MS платформа пък и MS IIS като сървър постоянно спада. Според последното прочуване на неткрафт за сървърите MS IIS са на 25% от машините. На по-предното прочуване са били 32%. Добър спад от 7%, който е зает от Апаче-то. :-) Ако така продължават с тези тъпи лицензионни политики никой няма да купува MS бозите след някоя и друга година. Някой компании взеха вече да заместват даже и десктопите си с Линукс.


Ако някой пише, да ползва кирилица, иначе изобщо не чета. Боли ме главата като трябва да прочета нещо дълго на латиница.



Цялата тема
ТемаАвторПубликувано
* Java versus .NET Milo Minderbinder   22.08.02 20:10
. * Re: Java versus .NET Dao Shou   22.08.02 20:18
. * Re: Java versus .NET Milo Minderbinder   23.08.02 11:41
. * Re: Java versus .NET Dao Shou   24.08.02 15:39
. * Re: Java versus .NET Milo Minderbinder   24.08.02 17:33
. * Re: Java versus .NET Dao Shou   24.08.02 17:55
. * Re: Java versus .NET Prog   09.10.02 20:43
. * Re: Java versus .NET voyager   23.08.02 09:46
. * Re: Java versus .NET j2ee   23.08.02 11:23
. * Една малко по-дълга лекция. NeverMind   25.08.02 19:35
. * Re: Една малко по-дълга лекция. Dao Shou   26.08.02 16:19
. * Re: Една малко по-дълга лекция. divan   29.08.02 10:24
. * Re: Една малко по-дълга лекция. Dao Shou   29.08.02 11:00
. * Re: Една малко по-дълга лекция. divan   29.08.02 14:40
. * Re: Една малко по-дълга лекция. Nobby   29.08.02 16:06
. * Re: Една малко по-дълга лекция. divan   02.09.02 15:15
. * Re: Една малко по-дълга лекция. Dao Shou   29.08.02 16:46
. * Признавам, че не знаех тези детайли за EJB-то. NeverMind   30.08.02 12:19
. * Re: Признавам, че не знаех тези детайли за EJB-то. divan (devils advocate)   02.09.02 15:29
. * Re: Признавам, че не знаех тези детайли за EJB-то. ChaosFire   03.09.02 10:49
. * Re: Признавам, че не знаех тези детайли за EJB-то. Valeri   23.09.02 16:52
. * to Dao Shou Virtuoso   01.10.02 18:19
. * Re: Една малко по-дълга лекция. HrabriqShiva4   01.10.02 17:32
. * Re: Java versus .NET Psychoiho   03.09.02 17:55
. * Re: Java versus .NET Majnata   10.10.02 12:30
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.