| imho.ws |
![]() |
|
|
|
# 21 |
|
Guest
Сообщения: n/a
|
RaZEr
Ты не прав, если считаешь, что интерпретируемые языки следующая ступень развития после компилируемых. Яркий пример (если помнишь или слышал) - GWBasic - полностью интерпретируемый язык и явно не вчера появился ;-). Просто Софт-индустрию постоянно "кидает" то в сторону компиляторов, то интерпретаторов. А популяризируется то, что продается, а продается то, что ново, а в компиляторах в последнее время ничего нового не появлялось (нужен новый "скачок" технологий). Кстати для прикола (и размышлений): процессор ИНТЕРПРЕТИРУЕТ программный код, который был СКОМПИЛИРОВАН для того, чтобы ИНТЕРПРЕТИРОВАТЬ программу на Java. Вывод: выбирать что лучше - Глупо, пытаться объединять выгодные стороны обоих - Намного умнее. |
|
|
# 23 | |
|
Guest
Сообщения: n/a
|
RaZEr
Во фразе: Цитата:
Но, боюсь, полноценную 3Д игрушку, созданную на интерп. языке ты увидишь не скоро. А компиляторы снова будут "на волне" после инерпретаторов, когда исчезнут проблемы несовместимости платформ и/или когда появятся задачи, требующие наиболее быстро работающего решения. |
|
|
|
# 24 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А что есть компилятор ? Программа создающая код понятный процессору ... так вот вероятность того, что изобретут процессор который станет первым и последним и других не будет, крайне мала. А значит будут разные поцессоры, старые и новые, большие и маленькие, дорогие и дешевые, и чтобы решения (программы) могли работать везде, придумали двухуровневую компиляцию ... с промежуточным кодом, который уже под конкретной системой и компилируется. По нынешним меркам потеря в скорости не критичная, а ресурсоемкие процедуры можно по прежнему писать используя unsafe code, т.е. тот код, который будет скомпилирован не в промежуточный код для виртуальной машины, а в конечный - для процессора.
|
|
|
|
|
# 25 |
|
Newbie
Регистрация: 14.10.2003
Сообщения: 25
![]() |
По-моему, обсуждение уже далеко отошло от темы
![]() Изначально утверждалось, что Java якобы заменяет C/C++ в учебных заведениях. IMHO Java куда проще их, поэтому вполне разумным представляется обучать программированию на Java, а уж потом переходить на С/С++, если потребуется. Java действительно не заменит С/С++, в чём я уверен, по причинам производительности в частности и по многим другим причинам тоже. Например, потому, что Java - эта некая задокументированная среда, включающая не только язык, но и библиотеки. Все разработки ведутся только в рамках этой среды. Если появляется какая-либо совершенно новая технология, то органично "подрубить" её к Java гораздо сложнее, чем к языку С/С++. Пример - колёсико мыши, которое, с одной стороны, уже невесть сколько времени существует, а с другой - нельзя было поюзать под Java буквально до 2002 года. А насчёт разницы между компилятором и интерпретатором - на самом деле она довольно условна. Теоретически никто не мешает создать процессор, машинным языком которого будет Бейсик - вот и привет ![]() Кстати, процессоры, для которых машинным языком является разновидность Java, существуют (picoJava II). А ситуация с .net ещё более интересна. Разработчики утверждают, что скорость работы .net кода будет выше, чем обычный компилированный EXE C/C++. Причина в том, что система .net осуществляет компиляцию кода на лету (just in time), а поэтому может провести некоторую оптимизацию, рассчитанную конкретно на вашу систему. А средняя среда разработки до сих пор обычно создаёт, по умолчанию совместимый с 386 процессором - т.е. никакого использования инструкций Pentim IV вы не найдёте. |
|
|
|
|
# 27 | |
|
Newbie
Регистрация: 14.10.2003
Сообщения: 25
![]() |
Цитата:
![]() Если не затрагивать вопросы компиляции/интерпретации/переносимости/etc., а рассматривать Java именно как язык, то на мой взгляд, он не лишён синтаксических и семантических проблем. 1) В языке Java слабая типизация. С одной стороны, это увеличивает гибкость, с другой - провоцирует ошибки. К примеру, я могу положить в массив любой объект, не заботясь о его типе. А вот когда я его буду вынимать - контроль типов лежит на мне, а не на компиляторе (как в С++). 2) как следствие - постоянные скобки, вызывающие уродливый синтаксис. В С++ "выемка" элемента из хорошего класса массива выглядит естественно: MyObject c = thearray[i]; навряд ли меня кто-то убедит, что синтаксис Java удобнее: MyObject c = (MyObject)(thearray.get(i)); 3) язык Java менее выразителен. Т.е. существуют хитрые философские концепции, которые можно выразить на С++, но нельзя выразить на Java (к примеру, так называемое "наследование реализации" без наследования интерфейса) 4) язык Java порою оказывается непоследовательным в определениях операций над объектами (например, string в ряде случаев ведёт себя как встроенный тип, а в других случаях - как класс). 5) отсутствие шаблонов (templates) трудно понять 6) нерасширяемость языка (перегрузка операций) - момент спорный, но я бы предпочёл, чтобы она была
|
|
|
|
|
|
# 28 |
|
Full Member
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
"От Java ждут очень многого, особенно в связи с интеграцией с Web, и эти ожидания подстегиваются дорогостоящими маркетинговыми акциями. Время покажет, будет ли Java дееспособен как универсальный язык. Хотелось бы посмотреть, как большинство программистов и менеджеров будут реагировать на "открытие" (для многих уже сейчас очевидное), что безопасность Java и в особенности JavaScript оставляет желать много лучшего. Часто путают безопасность типов языка программирования (что корректная реализация Java обеспечивает) с собственно безопасностью - поддержкой целостности системы и обеспечением конфиденциальности и секретности, что, по-видимому, может серьезно пострадать при использовании Java. В шутку называют Java "языком реализации вирусов". Если же вернуться к сравнению С++ и Java, то вспомним следующие фундаментальные характеристики С++: абстракция данных; поддержка объектно-ориентированного программирования (ООП); "обобщенные" (generic) классы..."
__________________
Старые игры раздают здесь |
|
|
|
|
# 29 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Кстати о сравнении:
http://ru.sun.com/win/java/start/intro/compar.gif |
|
|
|
|
# 30 |
|
Junior Member
Регистрация: 27.12.2002
Адрес: Belarus
Сообщения: 129
![]() |
Java уже очень давно (1996-1998) используется в качестве языка-для-студентов. Естественно, что при переходе с Бейсика или ещё чего на "язык покруче", при тех же преподавателях и уровне обучения, пользы мало, если не вред. Многие путают Java и JavaScript (выпускник-программист должен свободно владеть 5-6 языками программирования -- Asm, C/C++, Object Pascal, а ещё 2-3???). Проблем более чем хватает (Особенно если учесть номерацию от самой Sun -- Java2 = JSDK1.2 ~ 1.4).
Преимущество Java перед C/C++, C# и другими языками частично кроется в наличие значительного количества (более 100-150) сред разработки различного уровня. Среди них есть много "за так" -- что для _непередового_ американского вуза весьма хорошо (даром + легально). Хотя для образования существует Academic Edition за $100-200, но они обычно являют собой урезанные варианты. Для Java можно найти несколько _условно свободных_ пакетов для любой области от мобильных устройств (включая embedded) до кластерного ПО уровня предприятия (J2EE). И люди есть толковые, а это важнее красивых коробок... Богатсво разнообразия, хреновый маркетинг и и проблемы со стабильностью (для начала) конечных продуктов самой Sun Microsystems (да, её русский вариант сайта совсем не в дугу ) привело к тому что есть -- много шума и падение акций. Слава богу свои JSDK делает ещё и IBM и др.НО... Java, как торговая марка (tm), двигается слишком большим количеством различных производителей (от стиральных машин до корпоративных систем) -- слишком большая инерция у этого поезда -- главное чтобы он нас не подавил. А работы в ближайшее время на Java будет много, особенно в J2EE. Как говорил один мой знакомый -- главное чтобы хорошо платили!!! |
|
|
|
|
# 31 | |
|
Newbie
Регистрация: 14.10.2003
Сообщения: 25
![]() |
Цитата:
В строке "Simple" Java получает сто из ста (типа, проще некуда), зато С++ - "ужасно сложно"... это кто так оценивал? Дальше читаем: "Object Oriented" - Java получает статус "полностью ОО", а С++ - наполовину?! Объясните, почему... Что означает загадочная строка "Server", по которой С++ получил полный нуль? ![]() Почему "Exceptions" для Java - 100%, для С++ - 50%? 100% Portable для Java - тоже в большой степени рекламный трюк. Ну а самая смешная строка - Perfomance: Java = C++ = HIGH )Это просто без комментариев. Все критичные по скорости программы (например, игры) пишем на Java! В добрый путь... Одним словом, не внушает доверия. Кстати, существуют приложения, которые в принципе нельзя писать на Java. Например те, которые должны работать строго с постоянной скоростью (кардиостимулятор). Представьте себе, что этот стимулятор стимулирует себе, и тут в один прекрасный момент Garbage Collector решает произвести сборку мусора... |
|
|
|
|
|
# 32 | |||||||
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
. Кстати об играх. Критиные по производительности части кода реализуют не на С++, а на ASM (Это я к вопросу об OpenGL). Ну Sun и тут подкрепил свои слова аргументами, которые нельзя как принять так и опровергнуть:Цитата:
|
|||||||
|
|
|
|
# 33 | |||||
|
Newbie
Регистрация: 14.10.2003
Сообщения: 25
![]() |
Ну знаете
![]() Цитата:
Более того, если некто не способен применять эти средства выражения своих мыслей, язык не принуждает к их использованию. Вы можете писать программы на С++ без применения средств, которые вы плохо понимаете. Зато те, кто понимает, может извлечь из этого весьма заметную выгоду. Иными словами, ваша цитата - не более, чем частное мнение некоего человека. разумеется, под словом "вы" я понимаю автора цитируемого тезиса Цитата:
Цитата:
Вы МОЖЕТЕ написать на С++ НЕ-ОО программу, но это ваш личный выбор, а не ограничения языка. Цитата:
Цитата:
|
|||||
|
|
|
|
# 34 | ||||
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Цитата:
Цитата:
PS: А как насчет плюсов ? Есть предложения ?
|
||||
|
|
|
|
# 35 | ||
|
Junior Member
Регистрация: 16.12.2002
Сообщения: 64
![]() |
Цитата:
Цитата:
"На халяву" получай PHP - сильный интерпретируемый язык. |
||
|
|
|
|
# 36 |
|
Junior Member
Регистрация: 27.12.2002
Адрес: Belarus
Сообщения: 129
![]() |
Плюсы есть:
1) в одном месте собрано множество полезных пакетов по обработке разнообразных вещей. От регулярных выражений до работы с сетью на различных уровнях (сокеты и высокоуровневые протоколы). 2) качественно написанные задачи (везде есть свои нюансы ) работают нисколько не медленнее своих собратьев на C++. В некоторых задачах скорость определяется временем реагирования пользователя а не количеством терафлопс. Правда нужно вдвое больше памяти...3) при производстве ПО играет роль стоимость: среды разработки, дополнительных пакетов, лицензионных отчислений, времени кучи людей (аналитик, постановщик задач, технический писатеоль, кодер, тестер...) и прочего. Главное чтобы в итоге был $++ 4) Знание (ну и опыт конечно)! Уже сколько спорят про Win* VS *nux -- сплошные повторы (очень интересная тема для диссертации). Если человек знает *чего* хочет, и при этом хорошо понимает *как* этого добится, то выбор языка программирования чисто технический фопрос -- молоток или кувалда ![]() Java имеет ряд заточек под конкретные задачи. 5) В Java есть поддержка 3D Graphics, Music & Sound, Даже поддержка речи -- все модные слова. На W3C есть проект JigSaw -- это реализация прокси на Java. Кто чего ещё хочет? По поводу кардиологии -- что-то в медицине я видел только специализированную технику, спец. ПО (можно конечно использовать супер комплекс LinWin-PC-Ухо-Горло-Проктолог++). Для таких вещей есть Embedded Java (это вам не стандартная JRE). В мобильниках памяти не так уж и много, а в Prince of Persia играть можно! Java такое же широкое слово как и "Персональный Компьютер" -- кто что имеет, тот то и понимает... P.S. В последнее время слишком много пошло _разборок_ по поводу Java -- Java vs C++, Java vs C#, Java vs $$$, SUN vs MS... Ну не умеете программировать, или не хотите, то так и скажите. Лично я имеют опыт работы с Asm, Object Pascal, C/C++, Perl, Java и ещё пару языков (причём не только для x86 платформы) и в упор не вижу причин так сильно "бузить". Обычно выбор стоит не между языками программирования, а между -- быстро, красиво, за $. Сначала из этого и исходят, если другое не оговорено в контракте/постановке_задачи (учтно или писменно, роли не играет). В противном случае вы будете много знать и считатся крутым во всём-и-везде, но реальных завершённых дел будет мало Java так просто Вам не здастся!!! Боритесь с этой заразой! (Если зашли в тупик, то лучше на время переключится на что-то другое, не Java). Одним словом дерзайте |
|
|
|
|
# 37 | |
|
Junior Member
Регистрация: 16.12.2002
Сообщения: 64
![]() |
aleh
Цитата:
Может быть стаж не так велик, но за 7 лет работы программистом (читать программистом, а не эникейщиком) можно составить свою точку зрения о языках программирования и обсудить ее с себе подобными... Не надо сразу клеймить людей. |
|
|
|
|
|
# 38 |
|
Junior Member
Регистрация: 27.12.2002
Адрес: Belarus
Сообщения: 129
![]() |
BigFoot
Не надо сразу же всё принимать на свой счёт. ![]() Просто я уже устал от таких тем: *чтото-с-Java vs нечто-другое. Особенно после того, когда после злобных дебат в какой-то теме оппонент спрашивает в другой теме как сделать что-то простое (Опять не надо всё принимать на свой счёт ).Очень много таких "бесед", за последние полгода, было на: www.theserverside.com www.javalobby.org www.javable.com -- иногда доходило до драки P.S. Извините и простите... Наверное лучше создать отдельный раздел и рассматривать конкретные темы/направления. Иначе это грозит перерости в вариант флейма. Мир можно облететь за 80 дней... чтобы жениться этого хватит, но чтобы узнать его -- нет. Последний раз редактировалось aleh; 28.10.2003 в 18:14. |
|
|