| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Религиозные войны > Java > C++ |
| Автор: JAnty 18.3.2005, 14:37 |
| Почему говорят что Java это улучшенный С++. Это так или у них больное сознание? |
| Автор: DENNN 18.3.2005, 14:39 |
| В литературе есть такое понятие: метафора. |
| Автор: S.A.P. 18.3.2005, 14:50 |
| Скорее урезанный чем улучшенный. пойду ка я отсюда, пока помидорами не забросали. |
| Автор: Дрон 18.3.2005, 14:53 |
| Да это совершенно разные языки. ЗЫ: ТЕМУ ВО ФЛЕЙМ!!! |
| Автор: sergejzr 18.3.2005, 15:02 | ||
Ага! |
| Автор: pablo 18.3.2005, 15:02 |
| Ява - ето действительно улучшенный С++ и для етого есть несколько существенных причин. Вот несколько из них: 1) Максимальное упрощение синтаксиса языка, (отказ от указателей, шаблонов, и прочих средств С++ в которых часто могут быть неприянности). 2) Создание мултиплатформенной, единой системы, как для разработки сетевых программ, так и для простых приложений. 3) Создание единой и удобной системы разработки GUI приложний. 4) Создание улучшеной и гораздо обильнее чем в С++ стандартной библиотеки. Ну так судите сами, лучше или нет ? |
| Автор: JAnty 18.3.2005, 15:47 |
| Я не поддамся на провокацию. С++ лучше. Без указателей это не ООП, а просто глупости. |
| Автор: sergejzr 18.3.2005, 16:20 |
| И Ява и С++ это просто улучшенный ассемблер! |
| Автор: Дрон 18.3.2005, 16:22 | ||
Во первых, какое отношение имеют указатели к ООП? Во вторых в Джаве все переменные это и есть указатели. ЗЫ: ТЕМУ ВО ФЛЕЙМ!!! ЗЗЫ: Может сделать у себя такую подпись: "ТЕМУ ВО ФЛЕЙМ!!!" |
| Автор: pablo 18.3.2005, 16:28 |
| Понятие "лучше" крайне растежимое. Ява - язык полностью объекто ориентированный. Он не поддерживает структурного программирования, так что говорить что без указателей - это не ООП, неправильно. Но у Явы, тоже есть сушественный изьян: Скорость работы. Он крайне медлителен изза своего чуда "Байт кода". Хотя на сегодняшний день С++ гораздо чащe применяемый чем Ява, и на мой взгляд более удобней чем Ява. И еще, как говорят многие начинающие программисты ООП, ява гораздо легче в понимании чем С++. Так что если стоит вопросс что выбирать Ява или С++, а лично выбрал бы С++, несмотря на все прелести Ява. Хотите соглашайтесь, хотите нет, это моё личное мнение. Добавлено @ 16:31 Нащет Ассемблера полностью согласен, только Ассемблер - это улучшеный язык машинных кодов. |
| Автор: S.A.P. 18.3.2005, 17:42 | ||
|
| Автор: JAnty 18.3.2005, 19:59 |
| Насчот ООП я погорячился, но я тогда не вижу смысл Джавы. |
| Автор: chipset 18.3.2005, 20:00 |
| Модератор: ТЕМА В ФЛЕЙМ!!! ... перемещена |
| Автор: Domestic Cat 18.3.2005, 20:09 | ||||||||
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html http://soft.compulenta.ru/2004/6/17/47645/?ref=left http://kano.net/javabench/
Ерунда - насчет удобства по крайней мере. На западe жe С++ стабильно проигрывает.
Смысл Java - в кроссплатформенности, а тakже в тоm, что программы нa ней проще и намного быстрее писать, проще поддержиать. Корпоративные веб приложения / сервиса и пр пишутся нa Java, С++ тaм рядом не стоял.
часто лi нужнa "неурезанность"? Пo опыту знаю - в 99% не нужна. ЗY: J++ - это не Java. |
| Автор: dm9 18.3.2005, 20:19 | ||
Можно примерчик для общего развития? Без кодов, просто на словах. |
| Автор: Domestic Cat 18.3.2005, 20:28 | ||
Например, нельзя указывать поинтером на пустое место и думать, что там что-то есть, забывать удалить объеkt в цикле и гадать потом, куда делась память, вылазить за границы массивa из-за опечатки и брать непонятно какие непонятно откуда значения. Нельзя иметь богатую библиотеку классов - одну на всех, а нe кучу разных и несовместимых. Нельзя путаться в дебрях *->***->...__> и прочих хороших вещах... И так далее... шучу. |
| Автор: batigoal 18.3.2005, 20:50 |
| Как мне кажется, большое удобство - возможность сделать большое корпоративное приложение с доступом через браузер, т.е. никакой специальной клиентской части. Это позволяет делать очень крупные распределенные системы. В С++, как в более универсальном языке, тоже можно такое сделать, но в J2EE есть много классов, методик и т.п., предназначенных специально для этой задачи. Все ИМХО. |
| Автор: Domestic Cat 18.3.2005, 21:05 | ||
Дело в самой спецификации J2EЕ, понятии "контейнер" и кроссплатформенности Java. Java - J2EE приложениe будет одинаковo работать нa Макe, винде, линухe или солярисе. Вообще без каких-либо изменений и перекомпиляции. с++ - нет. Java - J2EE приложениe будет одинаковo работать на любом J2EE контейнерe - правдa, с настройкоj самого контейнера. Java - J2EE контейнер делает столько зa программиста, сколько весь этот форuм зa год не напишет. Транзакции, персистенс, кластеринг, балансинг нагрузки, фейл-овер, динамический редеплоймент, логгинг и аудиt, трединг, управлениe жизнью объектa, пулинg ресурсов, секьюрити, кеширование и т п. Все этo делается контейнерoм, причем один клиент можet работать на линухe с десктоп приложeния, другой- черeз броузер, третий - быть таким же прилoжением на виндe. Сделайтe этo нa с++ ... |
| Автор: batigoal 18.3.2005, 23:02 | ||
|
| Автор: Darked 18.3.2005, 23:06 | ||
Это уже беда не языка, а программиста. Если он не может писать правильно, то тут уж.... Это все равно что говорить что автомат Калашникова хуже чем палка, из автомата можно себе что - нить прострелить, поэтому с палкой проще воевать.... Java более уневерсален, а плата за это обычно - большая ограниченность в возможностях. Убери у жабы кроссплотформенность и у нее сразу гораздо меньше преимуществ останется. |
| Автор: S.A.P. 18.3.2005, 23:09 |
| Domestic Cat вот ведь изругался, от всей души. Все, будем переходить на Java, или С# |
| Автор: chipset 18.3.2005, 23:12 | ||||
Всё что есть у Jav'ы, также есть и у C++. Кроссплатформенность? Пожалуйста, boost::thread, STL и Qt. garbage collector? std::auto_ptr и т.д. Но кроме того у C++ есть перегрузка операторов, прямая работа с памятью и большее быстродействие. Добавлено @ 23:14
Пожалуй только с этим я соглашусь. |
| Автор: Domestic Cat 18.3.2005, 23:17 | ||||||
Это спорный вопрос. Например, если завтра раздать каждому по пистолету с боевыми патронами - увеличится количество убийств или нет? Мне почему-то кажется, что да. Хотя формально вина будет не на раздававшем.
Ничуть не "большая". Посмотри ради интереса на IntellijIDEA - прекрасный IDE, написанный на Java, даст 100 очков вперед многим, в том числе студии. Посмотри игру http://www.chromethegame.com/en/index.html. Большая ограниченность, говоришь? Да, нельзя с памятью работать напрямую. Ну не напишу я драйвер какой. Ну, не смогу я делать чисто виндозные приколы. Ну и ? IDEA от этого хуже стала? Ничуть. Каждому свое - ну есть МФЦ - пишите пожалуйста.
Тогдя это будет не Java. А если у С++ отобрать всю его МОЩЬ... |
| Автор: S.A.P. 18.3.2005, 23:17 |
| chipset просто когда Windows будет полностью построен на IL, а Linux и Mak на байт коде (возможно в далеком будущем) использование C++ с API будет не целесообразым, если конечно он удивительным образом не перекочует на IL или байт код. |
| Автор: Domestic Cat 18.3.2005, 23:22 | ||||
Не понял? Где тут кроссплатформенность???? А ну-ка, дайте мне приложение на С++, чтоб я его на своем Маке запустил
Перегрузка - не преимущество, а фича, причем спорная по полезности. Быстродействие - смотри http://soft.compulenta.ru/2004/6/17/47645/?ref=left Сколько раз ссылку давать? |
| Автор: S.A.P. 18.3.2005, 23:25 | ||
|
| Автор: Darked 18.3.2005, 23:27 | ||||||
Так и я о том же, что это С++ - интсрумент убийства, а не самоубийства ; )))
Согласен, под каждые нужды свои инструменты. Но системные вещи все таки не для джабы.
То есть все таки я прав, у джавы основной козырь - кроссплатформенность ; ) |
| Автор: batigoal 18.3.2005, 23:27 | ||||||
Если локальное приложение - да. Если обратиться к серверному - нет. Добавлено @ 23:28
Прав.
Согласен. |
| Автор: S.A.P. 18.3.2005, 23:32 | ||
|
| Автор: Domestic Cat 18.3.2005, 23:33 | ||
Нет. Это НЕ КРОССПЛАТФОРМЕННОСТЬ. Кросплатформенность в том, что я присылаю тебе прогу, а ты ее запускаешь БЕЗ КОМПИЛЯЦИИ. |
| Автор: RA 18.3.2005, 23:33 | ||
Глаголишь, истину. Асм всему голова. |
| Автор: Domestic Cat 18.3.2005, 23:34 | ||
Lamer George имел в виду, что можно обратиться к серверному Java -приложению или веб сервису. |
| Автор: Darked 18.3.2005, 23:35 | ||
Ну gcc не самый быстрый код дает, это бы сравнить с M$ Visual C++! |
| Автор: sergejzr 18.3.2005, 23:38 | ||
http://www.server-proga.ru/ |
| Автор: Domestic Cat 18.3.2005, 23:40 | ||
Да какя разница? По сравнению с самыми быстрыми С++ компиляторами Java отстает раза в 1.5 - 3. Если в особо критических местах пользовать нативные методы (в Java можно такое делать кстати), то будет где-то проигрыш в 1.2 раза. Но в целом, для 95% приложений разницы нет, даже если бы Java проигрывала в пять раз. Основные тормоза приложений при нынешней скорости компов - работа с IO, нетворкинг. А юзеру пофик - посчитает твоя программа 2+2 за 1 наносекуну или за 1 миллсекунду. Он не заметит просто. |
| Автор: S.A.P. 18.3.2005, 23:41 | ||
Какие - то странные у вас приколы.
|
| Автор: Darked 18.3.2005, 23:44 | ||
В принципе согласен, но а если дело касается обработка изображений или работа с БД ? |
| Автор: sergejzr 18.3.2005, 23:46 |
| Главный минус явы всё же - вирт. машина, которой нужно время для того чтобы загрузится и стартануть. Дальше, как и говорит Доместик, скорость пофик |
| Автор: batigoal 18.3.2005, 23:46 | ||
Вот именно это "что угодно" и удобно писать на Яве |
| Автор: sergejzr 18.3.2005, 23:48 |
| БД - io поэтому тормоза главные в ней. При работе с изображениями разница с Си будет небольшой, потому что циклы и так и так почти одинакого быстро выполняются |
| Автор: batigoal 18.3.2005, 23:49 | ||
В смысле? В самой базе или во время ее обработки в бизнес-логике? |
| Автор: Domestic Cat 18.3.2005, 23:51 | ||||
Работа с БД - здесь Java поступает хитро - она предоставляет интерфейс, и все. То есть, работать с любой БД можно. Написал для Оракла - потом можно перейти на мускул и не заметить. Хотя тонкости есть, некоторые БД не имеют некоторых фич, но это мелочи. Чтоб работать с БД, нужен драйвер от производителя. Производитель сам как хочет, так и пишет. Потому проигрыша тут нет.
Тут я не спец, не знаю. Но не думаю, что проигрыш большой. Ту же Java3D использовали на марсоходах - значит, производительность неплохая |
| Автор: sergejzr 18.3.2005, 23:52 | ||
Во время самих запросов. передача из твоего процесса - БД процессу |
| Автор: S.A.P. 18.3.2005, 23:53 | ||
sergej.z
|
| Автор: Domestic Cat 18.3.2005, 23:58 | ||
В мире больших програм и большого бизнеса логика своя. НАпример, штат программеров. Их надо переучивать тогда. Далее - есть готовый продукт, а Java -приложение нужно с нуля начинать. Скорость в таких делах тоже серьезный фактор. |
| Автор: Darked 19.3.2005, 00:00 | ||
Тут я думаю любой солидный коммерческй проукт лучше писать под свою плотформу хотя бы потому, что не нужно пользователя выкачивать еще и джава машину, которая кстати есть не у всех! А на С++ я написал софт, и мне не нужно просить бедного юзера искать вирт.машину, чтобы наслодиться приобретенным сфтом. |
| Автор: sergejzr 19.3.2005, 00:02 | ||||
Именно! В основном из за переучивания персонала. Ещё роль играет суппорт разработчика IDE. Многие фирмы выбирают продукты микрософта исключительно из за гарантированного суппорта. Деньги не имеют при этом большого значения, потому что списывается с налогов Добавлено @ 00:03
Если и он и ты на "на виндах" |
| Автор: Domestic Cat 19.3.2005, 00:11 | ||
За то что она не у всех - спасибо мелкософту. Хотя они вроде с Сан помирились, кто его знает, чем обернется. Тем не менее, поставил JRE и забыл. Для запада 15 метров скачать легче, чем левое ухо почесать. Я сейчас могу стянуть хоть всю вижуал студию на четырех дисках плюс все звездные войны и заплачу те же 30 баксов в месяц. И так каждый (тут). Добавлено @ 00:12 Забыл - на Макинтоше уже стоят Java, Perl, Python, gcc - даже тянуть не нужно. |
| Автор: alir 19.3.2005, 00:42 | ||||||
Например, ядро операционной системы и работа с памятью - на java нереально написать, а на C++ в самы раз.
Да вы что? Совсем что ли? И так поняно: написание мобильных приложений, корпоративные проекты, аплеты...
Да C++ уже почти везде проиграл - сейчас время java и .NET (C#). ИМХО: Java - язык хороший, но для него нет универсальной, удобной и стандартной IDE (и даже не заикайтесь о SUN One Sudio), а вот Visual Studio.NET в самый раз - удобный и распространенный, так что C# рулит! |
| Автор: Domestic Cat 19.3.2005, 00:48 | ||
Универсальной - точно нет, но многообразие - это хорошо |
| Автор: alir 19.3.2005, 00:57 | ||||||
Например, написание ядра OS и ее работу с памятью нереально на java, только на C++.
Да ты что? На java пишут мобильные приложения, корпоративные поекты, иногда и web, но в создании "настольного" ПО эффективен C++ в силу своей скорости выполнения.
Еще бы, сейчас рулит .NET. |
| Автор: sergejzr 19.3.2005, 01:02 |
| alir, повторяешься |
| Автор: Domestic Cat 19.3.2005, 01:07 | ||
Рынок сейчас такой: 60-70 % Java - 30-40% C# - по веб приложениям и сервисам |
| Автор: sergejzr 19.3.2005, 01:14 | ||
не, ну почему? Тоже можно, если возмёшь компилер, который её в исполняемый код переведёт |
| Автор: S.A.P. 19.3.2005, 01:16 |
| sergej.z в таком случае C++ Virtual Mashine тоже можно изобрести |
| Автор: ZX-80 19.3.2005, 01:18 | ||
Смысл Jav'ы теряется.. Получается очередной J#. |
| Автор: Domestic Cat 19.3.2005, 01:21 | ||
Дык есть же .NET CLR и Managed C++ |
| Автор: ZX-80 19.3.2005, 01:24 | ||
Почему не пахло? http://www.mono-project.com/Main_Page. |
| Автор: Domestic Cat 19.3.2005, 01:29 | ||
Какая это кроссплатформенность? Это проект вообще не мелкософтный; потому никакой гарантии никто не дает. Это раз. А два - посмотри как пишут программы на C#. Сплошные ансейфы, работа с виндозными неймспейсами и пр ... |
| Автор: sergejzr 19.3.2005, 01:32 | ||
Смысл Явы как раз её концепт как языка. Кроссплатформенность - побочный эффект. Очень приятный, но не всегда ключевой при выборе |
| Автор: S.A.P. 19.3.2005, 01:34 | ||
|
| Автор: ZX-80 19.3.2005, 01:35 | ||
MS планирует закрывать всю функциональность WinApi FCL'ом. Надеюсь что потребности в упомянутых тобою вещах не будет возникать... |
| Автор: LSD 19.3.2005, 01:39 | ||
Есть куча компиляторов в байт код(не из Java). Но при этом часто теряется возможность нормальной работы с framework. |
| Автор: S.A.P. 19.3.2005, 01:41 | ||
|
| Автор: Domestic Cat 19.3.2005, 01:41 | ||
С нелегкой руки господина Страуструпа они появился аргумент о "миллионах строк кода". За 4 года сколько написано? И что, все это переведут в кроссплатформенный код? Почему за это время микрософт не позаботился о .НЕТ хотя бы под линух? И будет ли вообще .НЕТ Винда? Вот тут автор сильно сомневается http://www.ddj.com/documents/s=9211/ddj050201dnn/ |
| Автор: sergejzr 19.3.2005, 01:41 | ||
Походы указателями одинакого на разных платтформах ? В яве поэтому стандартизированы типы. |
| Автор: LSD 19.3.2005, 01:45 | ||
Не обязательно, например попробуй к LISP прикрутить MFC. |
| Автор: S.A.P. 19.3.2005, 01:46 | ||
|
| Автор: sergejzr 19.3.2005, 01:48 | ||
Но ведь возможность имеется, а значит потенциальные грабли. Добавлено @ 01:52 Вообще факт то, что на яве за короткое время можно больше написать полезного кода, чем на Си. (У меня по крайней мере). Хотя на Си прогил намного дольше (ещё когда ява была не распространена). Программируя на си думаешь об освобождении памяти и не ускакивания в какие нибудь пространства памяти. Программируя на яве думаешь почти исключительно про свой алгоритм. |
| Автор: LSD 19.3.2005, 01:58 | ||
Когда я програмлю, у меня всегда голова болит, все ли ссылки я освободил. |
| Автор: Domestic Cat 19.3.2005, 06:22 | ||
В том то и дело, что не можешь - это я насчет указателей; если ты имеешь в виду указатели в нынешнем С++ виде. Там где можно отвлечься от конкретного адреса памяти, указатель вообще не нужен. Убери его - получишь Java переменную. Там где он нужен - там приложение уже непереносимо с одной ос на другую. Синтаксис Java такой же как у С++, только убраны * и -> за ненужностью. Есть интерфейсы, как в КОМ, что очень большой плюс. Никаких тебе МФЦ / АТЛ и проч - все собрано в 3 SDK - Standard edition, Enterprise Edition, Micro Edition. Множество полезных тулзов - Ant, XDoclet, ... Переписывать все это еще и под С++, имхо, пустая работа. Вон Микрософт захотел придавить Java - и быстренько состряпал 44 языка НЕТ, причем многие библиотеки FCL были по спешке переделаны из VB и WFC. И толку? Сотрудничество с Сан дало бы им гораздо больше. |
| Автор: JAnty 19.3.2005, 14:02 |
| Да... Я сделал вывод, С++. Если говорить, что программист должен искать более простое решение задачи, то возможно Джава, а зачем, если есть VB. |
| Автор: Kaskad 19.3.2005, 14:44 |
| Интересно |
| Автор: Kaskad 19.3.2005, 16:50 | ||
Не согласен. Мелкийсофт любой ценой хочет задавить SUN и остаться монополистом. Добавлено @ 16:53 Вообще, хватит давать дяде Билли возможность оставаться монополистом!НУжно любой ценой отвязаться от его вездесущей оси! Один из выходов - пересесть, главным образом, на java. |
| Автор: Domestic Cat 19.3.2005, 21:15 | ||||||
Это отдел маркетинга мелкософта так думает. Он также думает, что НЕТ кроссплатформенный и что ВС.НЕТ - чудо из чудес. Точнее, не думает, а делает такую рекламу, ибо не похвалишь - не продашь. Не вытеснит он никого.
Мда. Запомни: у с++ - одни задачи, у Java - другие, у ВБ - третьи. с++ нужен для системных вещей, для части десктоп приложений, для ресурсоемких штук типа игр, для поддержания готовых с++ проектов. На с++ НИКТО не будет писать веб приложения, сервиса, корпоративные приложения, кроссплатформенные приложения. Java устраняет часть (редко необходимых ) сложностей с++; и это само по себе хорошо. Java - 100% ОО язык, в отличие от С++. Сравнивать его с ВБ - глупо, тут разговору нет. И не надо думать, что Java - раз плюнуть, просто программист Java меньше отвлекается на ненужные манипуляции с указателями, удалениями и проч. Но ни один из супер-пупер с++ программеров, включая и тебя в том числе, даже после пары лет изучения Java не будет понимать и десятую долю Java технологий. Это другой уровень, на нем ВБ6 и не стоял, а с++ на него забраться не успел, как его Java выкинула.
Программер обязан искать простое решение. Также, как никто не делает двери в потолке или унитаз на стене на высоте трех метров. В реальной жизни никакой радости писать сложный код нет. После тебя приходит, возможно, не один человек - поддерживать приложение. Само написание программы - это 20-30% времени, остальное - дебаггинг и документация. И сложный код здесь как та самая дверь в потолке - готов убить строителя. Потому программист должен подходить к задаче с другой точки зрения - выбирать язык программирования не из соображений крутизны, простоты или сложности, а исходя из того, что больше подходит. И подходить объективно, а не эмоционально, как многие тут делают. Т.к. работает программист не для того, чтобы показать, что он умеет прибавить к указателю единицу, а из того, понятно ли будет это ему самому через месяц; или кому-то другому через год; исходя из той выгоды, которую даст использование с++ для данной задачи. Наверняка ты не знаешь ту же Java, насчет ВБ - не знаю. Поэтому мой совет - сначала выучи язык, потом напиши маленький проект, тысяч на 10 строк, а потом напиши то же на с++. И сравни. Хороший программер напишет такой проект на Java быстрее чем на С++ - раза в 3-4, при аналогичной функциональности и дополнтельной кроссплатформенности. |
| Автор: JAnty 20.3.2005, 14:10 |
| Что получается? У Джавы есть конкурент или он один в своём роде. Дж. я изучал поверхностно "синтоксис", не углублялся. Углублюс поглубже. |
| Автор: S.A.P. 20.3.2005, 14:48 |
| Хм |
| Автор: pablo 20.3.2005, 15:18 | ||
Вот что про это думают наши западные коллеги:
|
| Автор: Domestic Cat 20.3.2005, 19:11 | ||
Че-то слабовато они думают...
Это было (в 10-20 раз медленее) 10 лет назад. Сейчас - читай пой пост в этой теме или http://www.sys-con.com/story/?storyid=45250 |
| Автор: pablo 21.3.2005, 14:50 |
| Убедили, я неправ, но, несчитаете ли вы что производительность приложения зависит от компилера с которым он собран ??? (Это про С++). И вот ещё один вопрос: если уж Ява такой шустрый, так почему же большенство игр(прог где нужна производительность) пишутся всё же на C/С++ ??? Добавлено @ 14:55 Убедили, я неправ, но, несчитаете ли вы что производительность приложения зависит от компилера с которым он собран ??? (Это про С++). И вот ещё один вопрос: если уж Ява такой шустрый, так почему же большенство игр(прог где нужна производительность) пишутся всё же на С++ ??? |
| Автор: S.A.P. 21.3.2005, 14:59 |
| pablo ответ тут был уже дан. А мне вобще не понятно, как Java, которая сама написана на C может обгонять его по производительности? |
| Автор: batigoal 21.3.2005, 15:10 |
| Думаю, это все же частные случаи. Java проигрывает в целом по производительности, но умренно, пропасти здесь нет. |
| Автор: Domestic Cat 21.3.2005, 18:55 | ||
Не может конечно, но как сказал Lamer George, серьезной разницы нет. Java 1.5 довольно неплохо оптимизирована, работает с OpenGL, в полноэкранном режиме хороший фпс, можнo работать с видеопамяью, пользовать нативные буфера. |
| Автор: 3,14 22.3.2005, 17:15 | ||
Эх, не всегда, я тут с ant-ом при установке Tomcat под федорино горе замучался А вообще мне Java больше нравиться, в её пользу говорит то, что большинство людей, много програмировавших и на Java и на C++ всё же выбирают Java. |
| Автор: _hunter 23.3.2005, 19:30 |
| тут дело скорее не в людях, а в их менеджерах |
| Автор: Domestic Cat 23.3.2005, 21:41 | ||
Каk раз речь шлa о людях. |
| Автор: _hunter 23.3.2005, 23:30 | ||
я это понял как упоминание о программерах... если не прав -- сорри |
| Автор: Domestic Cat 23.3.2005, 23:35 |
| Я не пойму, что ты пытаешься доказать. Менеджеры навязывают Java? Нu так нe только Java, но и C++, .NET, и все остальное. Не нравится - увольняйся. 3,14 сказал, что большнство людей, знающих обa языка, выбирает Java. это его мнение, основанное видимо на личном опытe. |
| Автор: _hunter 24.3.2005, 14:56 |
| ничего я не пытаюсь. просто выбирают где? -- в домашних поделках? или приходят на фирму и говорят: "мне пофиг на чем вы все тут пишите и писать я буду на яве". так что ли? |
| Автор: Kaskad 24.3.2005, 14:59 | ||
на западе ява во все дыры имеет Си. Скоро волна и к на дойдёт. |
| Автор: 3,14 24.3.2005, 15:06 | ||
Программисты нужны и пишущие на C++, и пушищие на Java, если ты хороший программист (это понятие обязательно включает стаж в серьёзных проектах) то ты устроишся в любом случае |
| Автор: Domestic Cat 24.3.2005, 19:35 | ||
Речь идеt о личных предпочениях, они есть у каждогo и необязательно совпадают с теm, что используешь по работe. |
| Автор: _hunter 24.3.2005, 19:39 |
| угу. и толку с таких предпочтений?: есть у меня супер убовь -- в воде не горит, в огне не тонет а издому в ней лучше не выходить -- рассыплется ( ибо тапочки это домашние ) так что ли? |
| Автор: Domestic Cat 24.3.2005, 19:59 | ||
Нуsоздавай топик "Личные предпочтения - толку от них?", а тут флудить нe нужно. |
| Автор: ZAVS 25.3.2005, 04:35 |
| по моему С++ имеет свое место , JAVA свое я только не понимаю кому нужен С# не лучше было бы не копировать JAVA-у и тратить время , а помогать развивать его по моему опыту(небольшому) знаю что большинство корпоротивных приложений(на java) пишутся и компилируются на windows, а работают на linux-e , так что microsoft подерживая javu не теряет а больше выигрывает . |
| Автор: Sun 25.3.2005, 11:12 | ||
Золотые слова. Только Майкрософту не с руки так просто отдавать рынок. Для этого и придумываются модные штучки вроде .Net, которые создавались исключительно в маркетинговых целях. Радует что у Майкрософта достаточно денег даже чтобы тянуть бесперспективные и убыточные проекты и может со временем из .Net получится что-нить хорошее. |
| Автор: _hunter 25.3.2005, 15:21 |
| насколько я помню МС пытались получить исходники/лицензию чтобы писать яву, но что-то у них не сложилось с сан-ом ( кажись по поводу лицензирования не сошлись ) |
| Автор: Domestic Cat 25.3.2005, 19:54 | ||
Обычно мелкософт переделывает все как ему хочется, последний раз Сан его за это и засудил. http://java.sun.com/lawsuit/ |
| Автор: 3,14 28.3.2005, 09:11 | ||
А меня C# очень порадовал, ничего более удобоного и в то же время мощного для написания виндовых приложений я ещё не видел |
| Автор: juriy9 16.8.2005, 12:21 |
| По-моему чем обсуждать что лучше ява или си, полезнее было бы обсуждать что-нибудь вроде "Как выбрать язык для той или иной задачи". Я понимаю сравнивать ATI и nVidia, DirectX и OpenGL, но сравнивать си и яву - всё равно что взять задачу - попасть из точки A в точку B, имея в начилии велосипед, машину, самолёт, не уточняя каково расстояние между A и B и обсуждать, что лучше использовать чтобы решить эту задачу (попасть из A в B). |
| Автор: sergejzr 16.8.2005, 12:41 |
| juriy9, дык полгода назад уже эта тема стала неинтерестна |
| Автор: AIF 12.4.2008, 19:18 | ||||
Что толком мешает рассмотреть в этих двух языках ЕДИНУЮ систему программирования, с учетом основных сходств и различий ... ? Существуют ли подобные методики ... |
| Автор: mr.DUDA 13.4.2008, 01:49 |
| AIF, некрофил |
| Автор: Мастер 30.5.2008, 15:05 |
| Если Java - это улучшенный C++, то автомобиль - это усовершенствованная конка. (Впрочем - почему нет? Ведь и то и другое - средство передвижения.) C++ реализует обе (взаимоисключающие) технологии: процедурную и объектноориентированную. Если программист "пишет в объектах", и приэтом - использует указатели, как это принято в С (а С++ это позволяет, к сожалению), то это означает, что программист не понимаете основных идей объектноориентированного программирования. Многие начинающие програмисты (начинающие программировать с С++) надолго "клинят мозгами" на этой "особенности" С++. Java - не позволяет использовать указатели, и если вы хотите научиться программировать профессионально, то - начните с Java, версии 1.1. Java первая компактна, имеет исходники, которые писали проффи. У них есть чему поучиться. Java 2 - монстр, выродок, который растратил все, доставшееся от родителя, наследство. Я помню, как появилась Java. Это было большое событие в программировании. Почему? До сих пор, программы написанные под виндами - работают, если им разрешил это Билл, т.е. - только под виндами, только на процессорах, совместимых с Intel. Если вы гениальный инженер, и создали супер компьютер, который победил всех, то - окажется - ваше изобретение никому не нужно, потому, что нет для него ОС и софта для него. Это здорово тормозит развитие вычислительной техники и техники программирования. Java решила эту проблему, разделив разработчиков железа(Intel, к примеру), от разработчиков софта(Microsoft, к примеру). Такая жесткая привязка программиста к конкретной ОС и конкретному железу мешала всем. Java решила эту проблему. Теперь, создав компьютер, вам достаточно реализовать для него Java-машину и написать несколько сишных функций, и всё, что было написано до сих пор на Java? станет работать на вашем детище. На Java возлагались большие надежды. Но, увы. Здесь чтото не срослось. |
| Автор: LSD 30.5.2008, 16:25 |
| Так, первый купился, ждем дальше |
| Автор: JackYF 30.5.2008, 16:29 | ||||
Лол. Сейчас ты нам объяснишь, что указатели - это зло?
Дважды лол. На скольких архитектурах работает Java, и на скольких - семейство компиляторов GCC? |
| Автор: LSD 30.5.2008, 16:38 |
| Второй |
| Автор: Kangaroo 30.5.2008, 16:42 |
Добавлено через 1 минуту и 25 секунд Lazin, JackYF, если я не ошибаюсь, это автор, который в соседней теме пишет магазины только под ИЕ |
| Автор: Lazin 30.5.2008, 18:45 |
| щас мы ему пустим кровь где моя бензопила |
| Автор: JackYF 30.5.2008, 22:10 | ||
Я видел. Но не оставлять же ж такие аргументы просто так. Да и пофлеймить можно. |
| Автор: nerezus 30.5.2008, 22:22 | ||
Ты C++ то знаешь или просто так говоришь? |
| Автор: Mayk 31.5.2008, 04:56 | ||||
Какой феерический бред. http://www.top500.org/list/2007/11/100 думает до другому.
Наследование, инкапсуляция, полиморфизм. Итак. Как они в рамках С++ быть реализованы без указателей? Добавлено через 1 минуту и 36 секунд |
| Автор: Мастер 31.5.2008, 10:18 | ||||
В С (я это ещё помню) есть процедура сортировки массива. Называется qsort(). Ей, чтоб отсортировать массив, нежно передать два указателя: на массив и на функцию, выполняющую сравнение элементов. В С++ - вы тоже её пользуете? (Не боитесь перпутать местами указатели?) Я почему спрашиваю: в Java нет такой функции, и когда у меня возникала потребность сортировать, а я тогда (в начале 90-х) в С под Юниксом программировал, тогда только я и понял идеи, название которых вы знаете, но - понимаеите ли?
Ссылку посмотрел, но - не понял о чём они думают. Так - о чём думает матчасть? (Поясните, пожалуйста.) |
| Автор: nerezus 31.5.2008, 10:31 | ||||
Есть там все. Только не функция это. В джаве вообще функций нету(в глобальном смысле), если ты не знал. Arrays.sort(массив, класс с интерфейсом Comparator)
|
| Автор: JackYF 31.5.2008, 10:32 |
Не поверишь, в С++-коде можно свободно использовать std::sort. Кури STL. |
| Автор: Lazin 31.5.2008, 10:34 | ||
да есть такая нет, мы пользуем контейнеры, предикаты сравнения и обобщенные алгоритмы |
| Автор: Мастер 31.5.2008, 10:37 | ||||||
Авот это - C++ проглотит?
Или так:
(Лет пятнадцать назад - запросто.)
Я же говорю - не срослось. Непонятно - что помешало? Идея то - ах! - какая красивая. Думаю - голова у SUN разболелась от успеха. (А успех был, точно.) Они сделали ошибку, выпустив Java2. Этот монстр всё и испортил. А лучше Java1 до сих пор ни кто ничего не сделал. На Java1 я ещё под Win98 сделал HTML-сервер. (HTML-страничка сервер.) Кто из вас такие штуки умеет делать сегодня. (Судя по тому, как работают форумы - никто.) |
| Автор: Lazin 31.5.2008, 10:45 |
да, есть аналоги, только в отличие Java, контейнер будет содержать объекты нужного типа, а не object |
| Автор: Мастер 31.5.2008, 10:52 | ||
Java - потомок С++. Это прада. Именно поэтому Java не может быть хуже С++. Более того, Java обязана быть лучше. И это - так и есть. Java навязывает писать в объектах, учит этому, а С++ - запутывает. |
| Автор: nerezus 31.5.2008, 10:55 | ||
если разрешила - то можешь гордиться этими несколькими строчками)) |
| Автор: Мастер 31.5.2008, 11:04 |
| Что есть "Песочница"? Как?: JScript передает строку Java аппрету, тот (через сокет) - в серылет, а сервлет (по сокетам) рассылает сообщения другим апплетам. Далее: аплеты вызывают функции JScript. Возможно, я продемонстрирую в работе чат, типа ICQ. Но, в отличии от ICQ, на клиентскую машину никакого дополнительного ПО ставить не нужно. Есть у меня скрипт на базе этого чата. Его можно встроить в любую HTML-ку. (Т.е. - неважно, с какого хоста скрипт был загружен.) Чат будет работать. Эта технология позволяет реализовать общение посетителей в реальном времени. (Например, можно реализовать Internet-аукцион.) Но самая крутая вешь, которую можно было бы реализовать в IE (начиная с версии 5.5) - это игра Contr-Strike. (И опять - никакого дополнительного ПО - только стандартный виндусовый клиент.) Дело в том, что в IE(начиная с версии 5.5) входит технология векторной 3D-графики. Посмотреть пример можно http://people.nnov.ru/master/demo/hause/,http://people.nnov.ru/master/demo/rotation/ и http://people.nnov.ru/master/demo/spider/. Это - примеры 2001 года. Эти возможности появились давно, ещё в Win98, но - где, в каком сайте эти возможности были реалиованы. В зоне RU я таких не видел. (Если вы видели - ссылку дайте, пожалуйста.) |
| Автор: Lazin 31.5.2008, 11:07 | ||
если уж на то пошло, то Java - потомок С++ начала 90-х и у нее мало общего с современным С++ |
| Автор: Мастер 31.5.2008, 11:24 | ||
Что есть "Песочница"? (Не научился я ещё ботать по вашей фене.) |
| Автор: Mayk 31.5.2008, 11:41 | ||||||||
Нет конечно. Есть std::sort. Он,кстати, уделывает qsort, так как компилятор без проблем можеть за-inline-ить компаратор, в отличии от qsort'а. Ты говорил феерический бред что
я привёл ссылку на список из полтысячи супер компьютеров, для которых есть даже не одна ОС. Список осей - http://www.top500.org/stats/list/30/os.
Мы так и не увидели альтернатив указателям в си++ мире. Выкрики "ява1 рулед а все остальное сосёд" хороши для детсада. Если есть что сказать аргументировано - говори. Добавлено @ 11:46 Ответь на два простых вопроса(и да поможет те гугл) В каком году появилась ява? В каком году появился стандарт с++? |
| Автор: nerezus 31.5.2008, 12:05 | ||
В ней есть такое понятие, как песочница(sandbox). Оно запрещает использовать те функции джавы, которые могут навредить машине пользователя. |
| Автор: Мастер 31.5.2008, 12:06 | ||
Java1 может работать на кластере или на многопроцессорной машине. Механизм синхронизации процессов в ней проработан. А в C++ механизм этот есть? (Когда я читал Страуструпа - не было.) Как распараллелить Linix на кластер и многопроцесссорную машину? В этой ОС есть такая возможность? В какой есть? В каком языке? _______________________________________________ Что такое applet я знаю лет десять. (Читай выше.) Но то, что в неём чтото называют песочницей, впервые услышал сегодня. |
| Автор: MAKCim 31.5.2008, 12:21 | ||
масштабируемость у Linux крайне высокая, так что никаких проблем нет что касается языков, то Ada, если имеется в виду средствами языка (aka синтаксис и семантика), а не библиотек JVM предоставляет java-классы, как обертки над API хостовой системы тоже самое предоставляет, например, тот же boost (имеется в виду работа с потоками) |
| Автор: Мастер 31.5.2008, 12:29 | ||||||
С++ появился в конце 80-х. Java - в середине 90-х. (Если мне не изменяет память.) И что? С++ от это лучше? Уверяю вас нет. С++ вынуждена тащить за собой возможности, которые были в С. (С - процедурный язык.) Java появилась позже. Java - это С++, из которого выкинуто всё, что противоречит парадигме ООП, и в неё добавлена виртуальная машина, автоматическая сборка мусора и синхронизация параллельных процессов. В Java есть апплет, а в С++ - он есть?
Впрочем, наша академия наук распараллеливает фортран. Хвастают этим. (Крутые ребята. Я это к тому, что фортран тоже можно распараллелить, а уж С++... (Может - во втором случае это сделать легче?) Компания SUN взяла за основу Unix, переписала её на Java, так получился Solaris. И это - правильно. (Никаких С++.)
|
| Автор: MAKCim 31.5.2008, 12:40 | ||||
в начале-середине и что, Java от этого лучше? 1. это плохо? 2. С++ это она?
и что? все это нужно для абстагирования от деталей конкретной платформы при написании прикладных приложений это одна из целей Java решать низкоуровневые задачи ей не под силу иными словами Java заточена под прикладную область С++ же успешно справляется с разноплановыми задачами Добавлено @ 12:51
это в юмор однозначно как компилятор будет распараллеливать код ядра, если к моменту его компиляции средства распараллеливания еще не известны? или нам нужно сначала написать компилятор, реализующий вызовы функций распараллеливания еще нескомпилированного ядра, реализующего функции распараллеливания? |
| Автор: MAKCim 31.5.2008, 12:55 | ||
значит конструктивный разговор не получится Добавлено через 1 минуту и 6 секунд
Добавлено через 3 минуты и 27 секунд Мастер, если вы тролль, то явно не профессиональный |
| Автор: W4FhLF 31.5.2008, 13:09 |
| Не, это ж надо уметь... ничего не понимая в теме так убедительно говорить и даже находить какие-то аргументы |
| Автор: Мастер 31.5.2008, 13:20 | ||||||||
Для Java достаточно написать компилятор байт кода. (Весьма простая програмулина.)
Java должна работать на высоком уровне, на уровне выше драйверов. (DLL-ку к Java подключить можно.) Java должна синхронизировать процессы. Это то, для чего она создана.
В будущем будет три уровня: уровень ядра (Си), уровень ОС(Java) и уровень интерфейса(DHTML). Библиотека AWT в Java, по части интерфейса, никуда негодная. Всё, что связано с интерфеёсом в Java - плохо. Но этот недостаток легко компенсирует DHTML. AWT (в Java1) изучать интересно. (Писали проффи.) __________________________________________________________
Вам не нужно думать о том, как это происходит. Вам достаточно знать, что это есть и это работает. |
| Автор: nerezus 31.5.2008, 13:25 | ||||
Добавлено через 1 минуту и 2 секунды |
| Автор: Мастер 31.5.2008, 13:31 | ||
При компиляции байт кода вам ненужно думать о валидности кода. Эти занимается компилятор Java. Поэтому - компилятор байт кода проще. Но, ядро java написан на Си. Поэтому получается, что (вроде бы) Вы правы. (Тут нужно изучать детали.) А как это в Solaris-е сделано? (Есть там компилятор Си? Он там нужен?) |
| Автор: nerezus 31.5.2008, 15:20 |
| Плохой тролль, плохой... выучи матчасть) Джава для подобных девайсов пишется на асме. Хотя впринципе можно и на C, но использовать кодогенерацию под целевую платформу. Естественно C там нихрена не чистый в этом случае, куча фишек типа прерываний и т.д.. Солярис - обычная никса. Компилятор к ОС никакого отношения не имеет. Давай так: ты учишь матчасть, потом снова пишешь вызывающие посты, ок? |
| Автор: MAKCim 31.5.2008, 18:12 | ||||||
а JVM кто будет писАть?
убило да, нафиг struts, spring, EJB, JSF и т. д то, что не всякий сможет эффективно использовать С++, не делает его плохим ЯП
только ОС на Java я пока не встречал, а разговор то ведь о них в общем, разберись в теме для ведения конструктивного разговора |
| Автор: Мастер 1.6.2008, 08:57 | ||||||||||
Добавлено через 2 минуты и 32 секунды
Добавлено через 6 минут и 21 секунду
Эти фразы не противоречат друг-другу. В одной речь идёт о форме, в другой - о содержании. Профи написали профессионально програму, которая оказалась менее удобная, чем то, что написали другие проффи. (Вот и всё.) Добавлено через 9 минут и 22 секунды
|
| Автор: Мастер 1.6.2008, 09:17 |
| Я рассказывал о том, для чего Java создавался, а что из этого получилось... Мне это и самому не нравится. |
| Автор: Alexandr87 1.6.2008, 10:16 |
| Мастер, каждый пост - шедевр. |
| Автор: Любитель 1.6.2008, 10:37 | ||||||||
+100
Хде ж такие слухи-то берёшь?
|
| Автор: MAKCim 1.6.2008, 10:46 |
некоторая логика в некоторых постах все же есть |
| Автор: chipset 1.6.2008, 11:23 |
| Этот тред ещё жив? Вы пробовали писать веб-сервис на C++ с прозрачным доступом к нескольким БД который может исполняться на Линуксе а девелопиться на Виндовсах и Маках? А писать кроссплатформенное приложение которое переговаривается с железом и запускается без всякого инсталла на Вин 98? Для каждой области свои средства. |
| Автор: MAKCim 1.6.2008, 11:59 | ||||
а сложность в чем? 1. берем аналог hibernate для C++ (dbagen к примеру) 2. используем только STL и кроссплатформенные библиотеки что такое веб-сервис? программа, выполняющая запросы клиента и возвращающая результат ее можно даже на ассемблере написать при желании понятно, что для таких задач С++ не заточен, но реализовать можно
только для этого в случае Java сначала нужно JVM установить C++-компилятор есть на большем числе платформ, нежели JVM кроме того, что значит "переговаривается с железом"? что за железо? как переговаривается? |
| Автор: Мастер 1.6.2008, 20:19 | ||||||
Я не пишу на Си и CPP много лет. Много чего забыл. Сходу контроллер DMA, конечно, запрограммировать не смогу. Нужно вспоминать. Но - вспоминать не буду. Не хочу. Не хочу ветошью трясти. Алергия у меня на плесень. Что касаемо квалификации моей. Чтоб оценить квалификацию программиста, необходимо иметь квалификацию на порядок выше. К сожалению вы мне не даёте возможность оценить вашу квалификацию. Я вижу, что мне юнцы строят рожи( Покажите что нибудь. Уж очень зауважать хочется. (А пока, извините - никак.) |
| Автор: chipset 1.6.2008, 21:25 | ||
Понятно что на Java девелопмент займет пару недель, а на С++ месяцы... В чём вообще суть поста? Конечно, даже на Брейнфаке можно написать сервис но это не означает что это оптимально. А если ты разрабатываешь приложения в индустрии а не так поигратцо вышел то понимаешь что лучше использовать эффективные средства для каждой задачи а не выпендривацо программируя сервисы на асме. Даже gSOAP по сравнению с Java Spring'ом или ASP.NET'ом сосёт и увеличивает количество багов, стоимость, и т.д... А за dBagen пасиба, не знал что такое даже есть Установить JVM это значит без инсталла? Без инсталла это значит "вставил флешку на пять минут - вытащил - пошёл дальше". Добавлено через 4 минуты и 3 секунды
Железа существует много, некоторое через COM порт, другое через USB, и хрен знаете через что ещё в будущем. Суть железа неважна. Переговаривается это значит: коннект - обменданными x n - дисконнект. Добавлено через 12 минут и 51 секунду Никто не сможет стать хорошим архитектором пока не откажется от своей детской привязанности к одному языку и не начнет прагматично выбирать средства исходя из задач. |
| Автор: MAKCim 1.6.2008, 21:50 | ||
| chipset, я с тобой согласен потому и написал я лишь хочу сказать, что С++ сможет решить практически любые задачи другое дело насколько эффективно
и как это в Java сделано? |
| Автор: chipset 1.6.2008, 21:53 | ||
Йа во второй части поста писал про C++
вот эта фигня гораздо более эффективно пишетца на C++ Мы с тобой по одну сторону баррикад ё! Просто смысл поста в том Java и С++ полезны одинаково но в разных задачах. ЗЫ. А на С++ естественно что всё можно написать, даже Java переписать а потом на ней написать сервис! |
| Автор: MAKCim 1.6.2008, 22:01 |
с трудом представляю себе, как это можно сделать кроссплатформенно? |
| Автор: chipset 1.6.2008, 22:03 | ||
Кроссплатформенно в принципе и не надо.. Я это не из неба вытягиваю, это реальные проекты над которыми я щаз работаю |
| Автор: Мастер 2.6.2008, 09:04 | ||
Выбор с опытом появляется, а возможность делать правильный выбор - с большим опытом. Не в том проблема. Проблема у программиста (большая такая проблемища) в том, что: к тому времени, как понастоящему освоишь инструмент, он успевает морально устареть. Приходится переучиваться. И так - много-много раз. Я начинал с Бейсика(в 1979 году), потом - Фортран, потом - Паскаль, дальще - Си. А когда появился С++, читая бред Страуструпа, я - решил подождать. Тогда появилась Java и DHTML. Это было во второй половине 90-х. Меня удивляет, что С++ жив до сих пор. (Вашими усилиями, господа.) Этому хламу место на свалке. Давно причём. |
| Автор: MAKCim 2.6.2008, 09:19 |
взрослый дядька (если это не блеф), а поришь всякую х#$&@ |
| Автор: chipset 2.6.2008, 09:46 | ||
Как же ты будешь писать, скажем, простой бенчмарк который нагружает диск/проц/видяху до определенного уровня? Делать через JNI такое просто глупо. Опять-же, системное программирование, интегрирование в ОС, ембеддед, драйверы, операционные системы, видеоигры. |
| Автор: MAKCim 2.6.2008, 09:53 |
| chipset, у него просто весь мир ограничен вебом |
| Автор: LSD 2.6.2008, 11:51 |
| |
| Автор: Мастер 2.6.2008, 13:49 | ||||
|
| Автор: Shaggie 2.6.2008, 14:06 | ||
[Поперхнулся от неожиданности]
Торвальдс оценит изящность шутки. LSD, подвинься! |
| Автор: LSD 2.6.2008, 14:25 |
А хорошие псилоцибиновые грибы могут вообще заменить интернет и телевизор Пришел позже и еще пихается! |
| Автор: JackYF 2.6.2008, 14:29 |
Те люди, которые тебе браузеры написали (на С/С++) - тоже не программисты? |
| Автор: Mayk 2.6.2008, 15:02 | ||
ставит галку в "Включить уведомление на e-mail при ответах?"
Аргументация будет? |
| Автор: W4FhLF 2.6.2008, 15:22 | ||
Стаж 30 лет? Круто. Может быть дашь ссылки на свои проекты или совместные? Я думаю и заграницей поработать успел(в 70х в России Basic'a небыло) в крупных институтах и корпорациях? Очень интересно было бы узнать каков твой опыт в сфере разработки ПО. Не часто всё-таки встречаешь программистов с 30ти летним стажем |
| Автор: Lazin 2.6.2008, 15:32 |
| зрелищно, Мастер не подвел |
| Автор: Мастер 2.6.2008, 16:13 | ||||||||||||||
Я не знаю чем плох IE с точки зрения интерфейса, и чем хороша Опера, но я оцениваю DOM браузеров, и мне нет дела до интерфейса. Я имею богатый опыт программирования в рамках MSDOM, и предпринимал неоднократные попытки прграммировать в DOM Оперы и Мазилы, и могу сказать: MSDOM написал гений, а DOM Оперы и Мазилы - и...т. Я допускаю, что последний написал и интерфейс IE. Microsoft имеет возможность купить профессионалов, гениев в своём программистском ремесле, но интерфейсы у них создают глупые, потому как - сытые, янки. Ядро же ОС, Офиса и IE пишут эмигранты, в т.ч. - из России. Если бы Опера использовала ядро IE, а не пыталась пропихнуть свою убогую поделку, Опере, как браузеру, цены бы небыло. И вот когда народ привыкнул бы к интерфейсу Оперы, вот тогда бы Биллу можно было бы сказать: Билл, у тебя больше нет браузера. А пока что, рекламируя откровенно гнилой продукт, каковым является Опера, вы, господа, дискрилитируете идею альтернативного браузера. Когда народ поймёт, что Опера - туфта, вы, потом, когда появится настоящий браузер, альтернативный IE, палкой не загоните в него пользователя. На Билла работаете господа. (Ну... Как вам не стыдно!) Врочем, это, кажется, не втему. (Прошу прощения.)
Я специализировался на автоматизации научных экспериментов. (Выделение сигнала на фоне сильного шума и т.п.) 17 лет изучал мозг. (Пытались построить компьютер с искуственным интеллектом.) Мы тогда и мечтать не могли о компьютерах, за которыми вы сейчас сидите. Компьютеры стоили дорого. Работали на них по очереди, по ночам. Это сейчас писюк ничего не стоит. А раньше - 286-ая казалась волшебной палочкой. Мы на них чудеса творили. Раньше, чтоб к компьютеру доступ получить, высшего образования было мало. Дураков и самонадеянных ослов на пушечный выстрел недопускали к компьютеру. Времена изменились. Компьютер дёшев. Компьютеров стало много. Глупость за клавиатурой нынче, увы, нередкость. Многие мои коллеги после дефолта 98 года вынуждены были сменить профессии. (Многие фирмы раззорились, а те, что остались на плаву, и мечтать не могли об I-коммерции. Работы небыло у нас, программистов.) Вы, молодёжь, пришли на пустое место. Вам учится не укого. В этом ваша беда. Я обращал ваше внимание на возможности браузера IE. Ещё в Win98 можно было создать 3D-сайт. Тогда же можно было решить и задачу реального времени в Web. А вы зациклились на PHP и SQL. Какое вам дело до господ из W3C. Они тащут вас назад, к ЕС ЭВМ, дырки в перфокартах лезвием ковырять. Вам это - надо? |
| Автор: MAKCim 2.6.2008, 16:23 |
| LSD, Shaggie, для меня место еще есть? |
| Автор: Lazin 2.6.2008, 16:25 |
| вопрос, как можно программировать в DOM, ведь DOM, это Data Object Model, тоесть он кагбы в первую очередь описывает данные... но сам(сама) DOM ничего не делает Добавлено через 1 минуту и 20 секунд MAKCim, с этой стороны лучше видно |
| Автор: JackYF 2.6.2008, 16:27 |
Браузер - это не веб-приложение Ладно, на тебе ещё аргумент: тот, кто тебе ядро операционной системы написал - тоже не программисты? Так а чего ж ты пользуешься? |
| Автор: Мастер 2.6.2008, 17:00 | ||
Попробуй расковырять http://people.nnov.ru/master/DCSS/DCSS.1.1.beta.2004-03-30.rar. Посмотри пример http://people.nnov.ru/master/DCSS/test. |
| Автор: nickless 2.6.2008, 19:15 |
| Мастер, а тебя не смущает, что даже майкрософт в последнее время решила поддерживать и международные стандарты в своём браузере, кроме своих собственных? Недавно читал, что IE8 будет по дефолту использовать standard-compliant способ рендеринга. Сам знаешь, в IT всё очень быстро меняется и эволюционирует, глядишь и твои творения перестанут работать... ЗЫ Офигенная тема, я тоже к вам присоединюсь |
| Автор: Мастер 2.6.2008, 19:57 | ||||
Я в большую политику не лезу. Мне - зачем?
|
| Автор: MAKCim 2.6.2008, 21:12 |
| Автор: Lazin 2.6.2008, 21:27 | ||
мир жесток, я плакаль... некуда податься мне со своим FireFox-ом :'| |
| Автор: Fortop 3.6.2008, 03:47 |
Раньше чего появился? http://en.wikipedia.org/wiki/Fortran http://en.wikipedia.org/wiki/BASIC мда... |
| Автор: W4FhLF 3.6.2008, 07:21 | ||
И как же ты смог освоить столько буржуйских технологий? На русском и сейчас книг хороших не так много, а в 80х и 90х, я думаю, и вовсе небыло. Как тебе удалось научиться программировать в 90е(начало-середина) не зная английского? Программируешь мат. алгоритмы на Java+DHTML?
Ну вот я себе не могу представить: СССР + 70ые + IBM'овские меинстримы с траснялторами BASIC'a Сейчас спрашивал знакомого, он в СССР преподавал информатику в универе, как раз в то время, говорит не помнит такого. Может прогресс обошёл его стороной PS Да, и форт появился раньше васика, как уже упомянул Fortop |
| Автор: Mayk 3.6.2008, 07:27 |
не стоит путать обзывать фортран фортом - http://en.wikipedia.org/wiki/Forth_%28programming_language%29 обижается |
| Автор: mr.DUDA 3.6.2008, 09:17 |
http://ru.wikipedia.org/wiki/СМ_ЭВМ ?... |
| Автор: W4FhLF 3.6.2008, 09:28 |
| mr.DUDA, я понятия не имею. Подождём Мастера и узнаем. |
| Автор: Мастер 3.6.2008, 13:11 | ||||
В 1979 нас учили на бейсике. Фортран был потом. Кто из них первый вылупился? Я, до сих пор, был уверен - первым был бейсик. Вовсяком случае, все свмые старые машины на нём работали. И потом, тот, старый, бейсик с современным имеет только название общее, и питок команд, типа LET и REM. (Впрочем, про современный бейсик я почти ничего не знаю.) Я считаю самым продвинутым языком прграммирования - JavaScript. На нём невероятно легко писать. Просто - наслаждение. Мне иногда приходится возвращаться к Си, и мне кажется - этот язык придумали для пыток. JavaScript непросто лёгкий, но и, ьлагодаря процедуре eval(), невероятно мощьный. Благодаря этой процедуре вы можете писать программы, которые сами себя совершенствуют. Это кажется волшебством. Кроме того, JavaScript (совместно с Java, DHTML и VML) позволяет реализовать задачи реального времени и 3D-сайты с потрясающе гибким интерфейсом. Добавлено через 3 минуты и 46 секунд
|
| Автор: Любитель 3.6.2008, 13:18 | ||||
А ты думал?
А первоисточник? ;) |
| Автор: Мастер 3.6.2008, 13:20 | ||
У меня была идея - создать рабочее место математика. Этот когда математик, со своего домашнего компьютера, по телефону, мог озадачить кластер нашего НИИ, и, получив результат, мог посмотреть его дома. К сожалению - не срослось. Меня сократили. (Нужно было принять на работу юношу, который, в противном случае, шел в армию.) |
| Автор: Mayk 3.6.2008, 13:23 | ||||
Для тех кто видел lisp/python/ruby? Не надо смешить. Добавлено @ 13:24
rsh/ssh отменили? vnc? rdp? |
| Автор: Мастер 3.6.2008, 13:26 | ||
Это был основной источник. С конференций привозили. Спецслужбы тоже работали. (Воровали информацию.) Изучению современной импортной техники в НИИ занимались отдельные службы программистов. Ониже и нас учили. Писали пособия (на русском). |
| Автор: W4FhLF 3.6.2008, 13:29 | ||
omfg... AI is coming Как вообще связана практика программирующего матматика с образованием физика с веб-интерфейсами и HTML? Добавлено через 2 минуты и 23 секунды По моим подсчётам, сенсею порядка 50ти лет. |
| Автор: Lazin 3.6.2008, 13:32 |
| /me с нетерпением ждет продолжения |
| Автор: Любитель 3.6.2008, 13:32 |
| Блин, ну покажите мне программу, которая будет совершенствовать саму себя! Сразу фсё брошу и перехожу на яваскрипт. Обещаю! |
| Автор: Мастер 3.6.2008, 13:36 | ||||
Lisp - язык, насколько я помню, создан для того, чтоб писать программы, претендующие на наличие в них интеллекта. Но те, кто его создавал, незнали ответа на естественный вопрос: а что есть интеллект? Я допускаю, что лисп хорош, но он в браузере не работает, и маловероятно, что бкдет там работать. Он выпал из эволюционного процесса. На одной из конференций я, ещё молодой и наивный, спросил нашего, весьма важного, корифея, который пытался создать машину, обладающую искуственным интеллектом, c 1961 года: чем будет отличаться компьютер, обладающий искуственным интеллектом, от компьютера, который мы имеем сегодня? - Он будет думать! - ответил корифей, и, прежде чем я успел возразить, удалился, собою довольный.
С помощью процедуры eval() можно выполнить сгенерённую Скриптом строку, так, словно это програма. Браузер сам её компильнёт и скушает, если в ней(в строке кода) нет ошибок. А уж какой код в этой строке: совершенствует он вашу программу или нет, решать вам.( Критерии совершенства нужно описать для начала. К какому идеалу програма должна стремиться, совершенствуя себя?) |
| Автор: Mayk 3.6.2008, 13:39 | ||||
Читал(линк дам позже) что в генетических алгоритмах иногда применяются генитеческие же алгоритмы для определения оптимальных параметров(начальная популяция, вероятность кроссовера/мутации и т д) (или нейронные сети применяются для определения оптимальных параметров НС - не помню точно). Как пример самосовершентвования пойдёт? Добавлено @ 13:42
Незачот за знание матчасти. Корни лиспа напрямую уходят в http://en.wikipedia.org/wiki/Eval#Lisp. AI был позже. И вот кто-кто, а создатили javascript'а уж точно не знают что есть интеллект |
| Автор: Lazin 3.6.2008, 13:43 |
| блин, а я то думал он (ECMAScript) в первую очередь нужен для рисования пользовательского интерфейса на страничках |
| Автор: Мастер 3.6.2008, 13:52 | ||
|
| Автор: Любитель 3.6.2008, 14:02 | ||||
Да всё понятно - в чём гениальность сего? И самое главное - почему это "уникальность" яваскрипта?!
Верю. И не только для параметров генетического алгоритма - для оч многих параметров можно их находить (только к eval и пр. это не имеет отношения, но да ладно). Речь, конечна, шла о более высокоуровневом совершенствовании ;) |
| Автор: Мастер 3.6.2008, 17:50 | ||||
Нет этой процедуры в Си и С++. Но С++ итак доживает последнее. Её вытеснят языки, ориентированные на Web. Такие, как С# и Java. Всё, что с web не связано мало кого интересует уже сейчас. А в ближайшем будущем С++ уйдет со сцены. Что касается процедуры aval с точки зрения исскуственного интеллекта, то она позволяет сохранять в памяти правила. Т.е. - компьютер, кроме деклоративной памяти(БД), преобретает память функциональную(Навык). Теперь компьютер может не только ответить на вопрос: как зовут?, но и - что делать?. Научится, т.е. - записать последовательность действий в память, чтоб потом воспользоваться навыком. Т.о. - благодаря процедуре aval компьютер обзавёлся возможностью обучаться, навыки преобретать, рефлексы условные вырабатывать - т.е.. Компьютер становится живым, поскольку условные рефлексы характер формируют, и не только - человека. Благодаря процедуре eval компьютер станет устройством суперадаптивным, очень дружественным. Он мог бы им стать уже сейчас. Нужно просто правильно запрограммировать.
Молодёжь то нынче - продвинутая! Кстати, а что вы (нынче) называете генетическими алгоритмами? |
| Автор: Любитель 3.6.2008, 18:02 |
C++ сменил пол? http://ru.wikipedia.org/wiki/Генетический_алгоритм |
| Автор: MAKCim 3.6.2008, 18:12 |
| продолжайте в том же духе |
| Автор: Мастер 3.6.2008, 18:18 | ||||||||
Вы начнёте понимать что есть генетические (эволюционные) алгоритмы тогда, когда ответите на вопрос: а зачем природе понадобилось усложныть процесс размножения? Зачем понадобился мийоз? Чем плох митоз? Мийоз и митоз - два разных генетических алгоритма. Вчём разница? Почему у нас два родителя. Почему женщина без мужчины родить не может? Делились бы(как одноклеточные) надвое - просто и удобно - ненужно партнёра искать, добиваться его благосклонности. Зачем природе понадобилось этот (двуполый) огород городить? И ещё. Я ждал, что вы зададите вопрос: чем будет отличаться компьютер, обладающий искуственным интеллектом от компьютера, который мы имеем сегодня? Раз вы его не задали, то я его задам вам? Так - чем же?
Есть у меня http://people.nnov.ru/master/More/Book/IRu.htm, но она для математиков, специализирующихся в исследовении нелинейных динамических систем и нейронных сред. Суть такая: принято считать, что исследовать нелинейные модели труднее, чем линейные. Тем более - если система имеет нелинейности с гистерезисом, и нелокальные(длинные) пространственные и временные связи . В киге показано, что это нетак. Приведены методы и примеры к ним, позволяющие исследовать модели с произвольной нелинейностью, в том числе - с гистерезисом. Приведён метод, позволяющий исследовать модели нейронных сред. Вот http://people.nnov.ru/master/More/Finger/FingerRu.htm. Эта посвящена обработке и кодированию отпечатка пальцев.(Работа выполнена на Си, под DOS-ом в 286-й машине.) А вот в Матлабе, сегодня: ![]() ![]()
|
| Автор: Любитель 3.6.2008, 18:26 | ||
Добавлено через 27 секунд Мастер, респект. Хорошая тема полчилась |
| Автор: Lazin 3.6.2008, 18:43 | ||||
у С++ есть пол? Добавлено через 29 секунд
кого-то мне это напоминает Добавлено через 1 минуту и 25 секунд
а можно вопрос, зачем для этого функция eval? Добавлено через 3 минуты и 16 секунд |
| Автор: Мастер 3.6.2008, 19:08 | ||
смайли ки в этом форуме: класс!!! (народ на памперсах раззорится) |
| Автор: MAKCim 3.6.2008, 19:11 |
| Мастер, как ты думаешь, Java сможет заменить ассемблер? и вот еще что перечисли программы, которые у тебя установлены на компьютере, написанные на Java и требующие для запуска JVM |
| Автор: Мастер 3.6.2008, 19:26 | ||||
Сгенерить код для железяки можно на любом (пригодном для этого) компьютере. Генератор можно написать на Си или на Java. Я когдато программировал контроллеры York International с ноутбука, из под ДОС, по RS232. Генератор кода был написан на Си. Добавлено @ 19:29
|
| Автор: MAKCim 3.6.2008, 19:32 | ||
ОК представим ситуацию: тебе нужно написать обработчик прерывания, скажем, под IA-32e у тебя есть кодогенератор на Java/C твои действия? (по пунктам) |
| Автор: Мастер 3.6.2008, 19:52 | ||
IA-32e - это процессор? Хорошо-хорошо. Асемблер будет жить... Сдаюсь! Конечно будет, но - этот язык не для массового потребления. Инструмент специализированный. Я, к примеру, никогда не программировал BIOS. Ассемблер использовал только как вставки в Си от Борланд. Специальные инструменты всегда будут. И С++, очевидно, сохранится, но - не как язык общего пользования. Насколько я помню, обработчик прерываений, это код, на который указыает ссылка из списка указателей на прерывания. Список этот находится в памяти по конкретному адресу. Место в списке - есть номер прерывания. Так? (В досе это было, кажется, так.) Т.е., чтоб написать обработчик, мало сгенерить код, нужно этот код загрузить в память, и прописать точку входа в списке прерываний. Мне кажется, этим должна заниматься биос. Она должна инициализировать вектор прерываний. Вот http://www.ilog.com/products/cplex/product/platforms.cfm что-то говорится о JDK для процессоров IA. Т.е. - Java написана для вашего процессора. Вам её не хватает? |
| Автор: MAKCim 3.6.2008, 20:03 |
тогда еще один вопрос: что легче реализовать, компилятор С++ или JVM? ты уверен, что можно реализовать JVM под все платформы? нет |
| Автор: Мастер 3.6.2008, 20:29 | ||
Что касается платформ. Я застал ещё аналоговые компьютера. В них перемножадись не числа, а волты и амперы. (Кстати, аналоговые компьютеры управляют Ту-160.) Наверняка, там Java работать не будет. Java не будет работать в нейронной среде, если та аналоговая. Java работает в многопроцессорных (RISC) компьютерах. (См. http://www.osp.ru/nets/1997/01/142118/#part_3). Java создавалась как средство программирования встроенных(с весьма огранниченным объёмом ресурсов) систем. Тот, кто выпускает процессор, обычно, сам пишет Java машину. Нужно посмотреть на сайте разработчика. |
| Автор: Shaggie 4.6.2008, 06:57 | ||
Уже неверно. Начиная с шестой JDK имеется механизм поддержки скриптовых движков, и, по идее, выполнить можно любую строку, удовлетворяющую некоему формату. Пример:
Одного не пойму - и как с помощью eval() можно захватить мир? Да, временами очень удобно... но не более того. Тем более в Java, которая очень строго относится к попыткам выстрелить себе в ногу. |
| Автор: Lazin 4.6.2008, 08:13 | ||
| для плюсов полюбому больше скриптовых движков Добавлено через 51 секунду Ма-стер, Ма-стер, Ма-стер, Ма-стер, Ма-стер, Ма-стер, Ма-стер!! давай еще! Добавлено через 3 минуты и 59 секунд
в них решаются диф-уравнения, джавы там точно нет Добавлено через 13 минут и 14 секунд а сейчас я буду объяснять почему Java - отстой Java - с точки зрения эффективности, далека до идеала (в лице Си), поэтому, когда программа написанная на Java-e выполняется, огромное количество тактов процессора тратится на обработку байт кода и преобразование его в машинные инструкции ну и на много чего еще (наверное), каждый такт процессора - трата электроэнергии, что-бы произвести эту энергию нужно, к примеру, сжечь некоторое количество углеводородов, эти углеводороды образовывались миллион лет, и они не возобновляемые... то-есть программируя на Java вы только увеличиваете энтропию вселенной, приближаете ее тепловую смерть. еще это приводит к дефициту углеводородов, как результат - посевные площади занимают рапсом, а в странах третьего мира - нехватка продовольствия и голод... теперь вы видите, почему программы должны быть эффективными, почему их нужно писать на компилируемых(в нативный код) языках! |
| Автор: Мастер 4.6.2008, 08:50 | ||||||
Кто же компиляет скрипт? Впрочем, это не совсем то. В Jave нельзя сгенерить код на Java, и исполнить его.
Когда поймёте - станет ясно - как это можно реализовать на компьютере. Кстати, интеллектом обладают все, кто имеет нервную систему. Обучаться (вроде бы) могут не все. Конгда вы пишите программу на Си, вы обеспечиваете компьютер набором безусловных рефлексов. Ваша программа не умеет учиться. Чтобы учиться, нужно уметь записывать(запоминать) правила. На Си это (практически) невозможно. На JavaScript, благодаря eval, это можно. Теперь, чтоб запомнить правило, его, правило это, нужно ещё сгенерить. А вот это - от задачи зависит, и - от вашего понимания её.
Кроме того, писать на Java алгоритмы обработки данных неправильно. К Java нужно подключить библиотеку, которая это делает. Задача Java - синхронизировать работу многих нативных процессов. Большего от неё требовать не следует. Даже интерфейс на Java писать не правильно, потому, что неудобно. Cложно и гибкий он не получается. Интерфейс нужно писать на DHTML. |
| Автор: nerezus 4.6.2008, 09:17 | ||
|
| Автор: Mayk 4.6.2008, 09:21 | ||||||
Тар, это ты?
В самом деле?
Набор слов. Что такое "учиться"(с)? |
| Автор: Alexandr87 4.6.2008, 09:24 |
| Мастер, разницу между скриптами и компилируемыми в машинный код языками понимаем? |
| Автор: Shaggie 4.6.2008, 09:33 |
Технически можно, только это мало похоже на пресловутый eval(). Достаточно сгенерировать правильный код для класса и подать внешнему компилятору команду на компиляцию. Более того, с этой проблемой народ встречается не так редко; Apache создали удобный пакет http://commons.apache.org/jci/ для её решения. |
| Автор: Мастер 4.6.2008, 09:35 | ||||||
JIT - это компилятор? Зачем "компилировать налету", если можно докомпилять байткод до натив. Что мешает?
|
| Автор: Alexandr87 4.6.2008, 09:46 | ||
| Мастер, вообщет этот вопрос был касательно eval а. и "невозможности" сделать это на си. На си можно написать (и они уже написаны) движки, которые будут интерпретировать любой скриптовый язык.
Ничто не мешает gcj, а компилировать на лету затем, чтобы можно было запустить один и тот же "набор байтов" под любой платформой (скриптовая фишка) и увеличить скорость выполнения посравнению с "прямой" интерпретацией байт-кода. |
| Автор: Lazin 4.6.2008, 21:47 |
| както тихо тут стало... |
| Автор: JackYF 4.6.2008, 23:46 |
| Давайте про D пофлеймим. |
| Автор: chipset 5.6.2008, 02:14 |
D рулит. Миксины форева. |
| Автор: Shaggie 5.6.2008, 05:44 |
| Dtrace наше фсио, а без D в него не суйся! |
| Автор: LSD 5.6.2008, 11:23 |
| Согласен D рулез, одни итераторы чего там стоят Кстати а есть нормальные IDE для D? |
| Автор: Mayk 5.6.2008, 11:25 |
vim. Добавлено через 28 секунд |
| Автор: nerezus 5.6.2008, 11:43 |
| А зачем тогда D рекламится левыми способами? Там была таблица сравнения с C/C++/Java/C#, так там куча пунктов неверно была проставлена: типа в D оно есть, а в других нету, хотя на самом деле в других это тоже есть. |
| Автор: LSD 5.6.2008, 12:35 |
| Mayk, я спрашивал про нормальную IDE, а не как бы мне поизвращенней убить свое время |
| Автор: Lazin 5.6.2008, 12:43 |
| Code::Blocks, Poseidon, Eclipse... как грязи |
| Автор: Мастер 5.6.2008, 14:10 | ||||
Докомпилировать байт код имеет смысл при инсталляции ПО на Java написанного именно для того, чтоб увеличить скорость выполнения кода. К переносимости на другие платформы это не имеет никагого отношения. Вы же не переносите установленный Офис на новый компьютер. Вы туда ставите дистрибутив. Так вот, дистрибутив пусть содержит только байткод. Натив код из него можно сгенерить при инсталляции ПО на конкретную железку. С апплетом этого сделать нельзя, а мы и небудем. |
| Автор: LSD 5.6.2008, 14:15 | ||
Шумит меньше и ездит "мягче" А фортран паралелить не нужно, его перпендикулярить нужно |
| Автор: Alexandr87 5.6.2008, 16:01 | ||
у интерпретируемого кода кроме платформонезависимости есть еще ряд приемуществ, вроде слежения за действия кодами и возможность авторизовывать данные действия или блокировать их. |
| Автор: W4FhLF 5.6.2008, 16:39 |
А в чём проблема? Уже много лет существует OpenMP технология для фортрана. |
| Автор: Мастер 6.6.2008, 06:18 | ||||
Объектноориентированные распараллеливаются легко, поскольку каждый объект может существовать в пространстве и во времени одновременно с другими объектами. А Java механизм синхронизации процессов изначально, с первой версии содержит. Распаралеливать Фортран глупо. Можно было просто создать библиотеку(DLL) и подключить её к Java.
|
| Автор: Mayk 6.6.2008, 07:37 | ||||||
Какая феерия
|
| Автор: Lazin 6.6.2008, 08:43 | ||||
интерпретатор lua - не медленный, во всяком случае в таких задачах как работа со строками или поиск в таблице, он не медленнее Java, а даже наоборот...
чет я не понял, джава все автоматически распаралеливать научилась? Можно тут поподробнее, как джава заставит код из DLL работать параллельно? |
| Автор: nerezus 6.6.2008, 12:02 | ||
|
| Автор: Lazin 6.6.2008, 13:01 | ||
lua BNF grammar выглядит так:
распарсить его очень просто, так что интерпретатор там и подавно быстрый... |
| Автор: JackYF 6.6.2008, 13:32 |
EBNF |
| Автор: Lazin 6.6.2008, 14:27 |
согласен, только в доке написано что это BNF Добавлено через 26 секунд но все-же это EBNF |
| Автор: chipset 6.6.2008, 19:27 | ||||
Тебя не смущает что юникс поддерживает лучшую многозадачность чем виндовс? Кстати Юникс написан на процедурном языке, и много приложений под него тоже. Про то что процедурные языки строго соблюдают очередность команд это вообще шедевр. Откуда это?? Ты слышал про WaitForMultipleObjects какой-нибудь или асинхронные потоки в чистом Си? Методы программирования многопоточных прилаг в Си и С++ ничем не отличаются. Поэтому добавив обьекты в фортран ты мало что выиграешь.
Это никак не влияет ни на что. Точно так же могут существовать в одном пространстве и времени данные в какой нибудь shared memory. Как дополнительные функции к обьекту помогут существовать обьекту во в многопоточном пространстве? Эти функции легко вынести за пределы обьекта. ![]() |
| Автор: MAKCim 6.6.2008, 19:53 |
| chipset, |
| Автор: chipset 6.6.2008, 20:10 |
аааа... Добавлено через 3 минуты и 41 секунду ![]() |
| Автор: W4FhLF 7.6.2008, 10:16 | ||||
Не знаю, что у тебя там с очередностью и кривостью, но у меня сейчас два проекта: один на С++ с пом. OpenMP распараллелен, если бы был на С, то точно так же был бы распараллелен без всякой кривоты; второй, на С, через CUDA API распараллеливается на 128 ядер(те, что в GPU) и порядка 4000 потоков. Ищи кривость в другом месте
Можно было просто пойти попить пива. |
| Автор: LSD 7.6.2008, 10:48 |
| Эпическая сага о том, как доблестные флеймеры победели злого тролля: Часть 1. Братство IE. Часть 2. Два языка. Часть 3. Возвращение фортрана. |
| Автор: 3,14 7.6.2008, 11:32 | ||
Тоже захотелось пофлеймить немножко
Java уже довольно давно не интерпретируется байт кодом во время выполнения. Классы компилируются в машинный код во время подгрузки. Конечно, программа несколько дольше стартует, но во время выполнения она ничуть не проигрывает. |
| Автор: Mayk 7.6.2008, 11:47 | ||
ОСТОРОЖНО, БОЯН:
Не проигрывает кому? http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=allразве что? Или ява уже в состоянии тягаться с icc или хотя бы с gcc? Вообщем бенчмарк или не было. |
| Автор: 3,14 7.6.2008, 11:59 |
| Да были уже тесты, и на форуме постились где и Java опережала C/C++. Вопрос в том, что и как тестить. А сегодня времени читать эту ссылку+искать старую нет просто... ЗЫ: Лично сам против C/C++ ничего не имею, хотя программирую, в основном на Java. |
| Автор: Мастер 7.6.2008, 12:03 | ||
Java медленный, если его байткод не компилять. JIT частично решает эту проблему. Ускоряет. Но оптимальый скомпилированный код на лету трудно получить. Если компилятор работает бысторо, то, скорее всего, он генерит не оптимальный код. Java хороша вместе с Си. Т.е. - те места, которые критичны по времени исполнения, и в них тормозом является именно код(а не железо), то стоит написать нативную функцию. Фурье, к примеру, на Java писать не правильно. Однако, иногда призодится, если код в апплете работает. |
| Автор: MAKCim 7.6.2008, 12:17 | ||||||
| рассмотрим арифметику Java
C
итого с простой арифметикой Java работает в 1.809 / 0.891 ~ 2.03 раза медленнее, чем код ICC и в 1.809 / 1.419 ~ 1.27 раз медленнее, чем код GCC |
| Автор: W4FhLF 7.6.2008, 12:27 |
| MAKCim, интересно, чего туда icc напихал, что аж почти в два раза обошёл gcc? PS Так вот, кто такой rei3er |
| Автор: 3,14 7.6.2008, 12:44 |
| MAKCim, тут нужно смотреть, ближайшие дня три, мне точно некогда будет :( Первое что приходит в голову: нужно проверить одинаковые ли диапозоны используются для java-кого long (жёстко прописан и не зависит от процессора) и c++ long (зависит от процессора). |
| Автор: Мастер 7.6.2008, 12:48 | ||||||
А кто за тебя код писать будет? В Java есть механизм запуска параллельных процессов. (Ищи по клюевому слову Thread.) Вот пример:
В Java есть механизм синзронизации параллельных процессов. (Ищи по клюевому слову synchronized.) Вот пример:
|
| Автор: Lazin 7.6.2008, 13:04 |
а используя нативный код потоки синхронизировать нельзя? Добавлено через 25 секунд становится все интересней и интересней |
| Автор: Мастер 7.6.2008, 13:07 | ||||
Всё, что можно на Java и на JavaScript, можно сделать и на Си, и на ASM. Разница в том, что Java компилятор и библиотеки помогут. (Поэтому можно написать быстро качественный код.) На Си придётся писать то, что в Java уже есть, и компилятор Си не поможет тебе там, где ты можешь сделать ошибку. Приведу пример. NASA потеряла миллиард из-за ошибки программиста. Их спутник сгорел в атмосфере Юпитера. (Программист, подлец, перепутал футы с метрами.) Пример не самый удачный. Есть другой. Нашь спутник (не помню где, на Венере, кажется) помер в семидесятых. Причина: компилятор фортрана. Он не заметил ошибку в коде. Тут было что-то связанное с циклом FOR. При некоторых ошибках в его написании, он превращается в валидную, с точки зрения компилятора, стоку. Добавлено через 5 минут и 19 секунд
|
| Автор: Lazin 7.6.2008, 13:27 | ||
Это как? Добавлено через 1 минуту и 12 секунд Java разве не использует функции ядра операционной системы для синхронизации своих потоков? |
| Автор: Mayk 7.6.2008, 13:36 | ||||||||
Это фигня а не распараллеливание. Вот эрланг с его легковесными процессами - это айс.
Не совсем понял что к чему. На яве что, нельзя допустить ошибок?
эта строка была отквочена чтоб не забыть забенчить double'ы +1 зы. я уже правда потерял нить флейма и о чем мы вообще, но веселье продолжается. Добавлено через 44 секунды
в posix thread он тоже есть. |
| Автор: Lazin 7.6.2008, 13:38 | ||||||
этот код делает примерно то-же что и предыдущий пример на java
Добавлено через 5 минут и 28 секунд
язык С++, в отличие от Java поддерживает метапрограммирование в compile time, есть как-бы две программы, первая выполняется в compile time, а вторая в run time... так вот, компилятор С++ можно заставить во время компиляции проверять единицы измерения переменных в выражениях, и он не даст переменной имеющей тип Watt присвоить значение типа Amper Добавлено через 6 минут и 56 секунд в Java это можно сделать только в runtime |
| Автор: Мастер 7.6.2008, 13:58 | ||
Логическая ошибка - это уж ты сам. Но и тут, как правило, компилятор помогает, поскольку логическая ошибка, если ты придерживаешься правил ООП, приводит к несоответствию классов, это компилятор отслеживать умеет. |
| Автор: MAKCim 7.6.2008, 14:00 | ||||||||||
палюсь я бы и сам хотел изменить ник, но пока нельзя
да
гы-гы-гы
аналогично
|
| Автор: Мастер 7.6.2008, 14:04 | ||
Возьмите Java1 и посмотрите исходники (как AWT в ней устроено?). (Обалденно интересно.) Тогда вы поймете Java2. Эсли вы первую яву не поняли, то этот монстр(ява два) вам не отдастся никогда. |
| Автор: Lazin 7.6.2008, 14:09 | ||
ну тогда она ничего нового не предлагает, все то-же самое что и в других языках =) |
| Автор: MAKCim 7.6.2008, 14:19 | ||||||
боюсь, будет разгром ибо ICC порвет всех
|
| Автор: Мастер 7.6.2008, 14:24 | ||
Ну это ты зря... Java освобождает тебя от мыслей о том, как это сделано. Ты просто юзаешь удобную, современную вещь. При этом, то, что ты написал, будет работать везде, на любой железке, на которой реализована Java (если, конечно, у железяки мощи хватит исполнить твой код). |
| Автор: MAKCim 7.6.2008, 14:27 | ||
блин, даже если скомпилировать под конкретный C2D
все равно больше, чем у GCC |
| Автор: Мастер 7.6.2008, 14:37 | ||||
Вот что я нашел в сети: http://www.linux.org.ru/view-message.jsp?msgid=2129413&page=3
|
| Автор: Lazin 7.6.2008, 14:41 | ||
а что, программирование на Java освобождает программиста от заботы о синхронизации потоков? что будет если 1 поток будет добавлять элементы в список, а другие читать этот список? |
| Автор: Мастер 7.6.2008, 14:54 | ||||
|
| Автор: Lazin 7.6.2008, 15:03 | ||||
я просто пытаюсь понять, чем Java в этом плане так принципиально отличается от того-же С++, чем она мне помогает. поможет ли Java отследить race condition, deadlock или падение производительности из-за неправильного использования многопоточности. например С++ программисту сложно понять даст ли преимущество в скорости распараллеливание цикла, или только добавит тормозов, или - стоит лочить данный объект, или это приведет к простою других потоков, которые его все равно не изменяют... такие вещи, по идее, должны быть лучше известны компилятору, чем программисту, но на практике это все выполняется вручную... |
| Автор: Мастер 7.6.2008, 15:14 | ||||
К Java можно относиться как к продвинутому Shell поверх базовых натв-функций. (К весьма продвинотому Shell.) Набора стандартных возможностей, которые предоставляет Java, как правил - хватает (ну, или - должно хватать), чтобы реализовать большинство практических задачь, на большинстве процессоров и архитектур. Эти возможности реализованы в библиотеках и в самой JVM. Библиотеки универсальны, реализованы и отлажены профессионалами. Есть исходники, их можно посмотреть, изучить, научится правильно программировать. Что ещё нужно программисту.
|
| Автор: Lazin 7.6.2008, 15:33 | ||||||
о сколько нам открытий чудных... Добавлено через 39 секунд
странно, а разве это не ЯП общего назначения? Добавлено через 1 минуту и 59 секунд
ну так кто спорит, что на Java можно (и даже удобно) программировать, вопрос только в том что там есть такого особенного для "синхронизации процессов" как вы говорить |
| Автор: W4FhLF 7.6.2008, 15:37 | ||
Это от языка не зависит |
| Автор: Мастер 7.6.2008, 15:54 | ||||||
|
| Автор: Lazin 7.6.2008, 16:25 | ||
Java - это императивный яп, то-есть язык, в котором программист определяет порядок вычислений, в этом плане Java от C ничем не отличается, а ООП это просто способ удобной структуризации кода, вот и все... Ну так вот, императивный стиль программирования входит в противоречие с параллельным программированием, так как порядок выполнения конструкций языка не определен (вернее определен, но только для одного трэда, а как они там друг на друга наложатся никто не знает), а вся эта синхронизация нужна только для того, что-бы хотя-бы на уровне методов одного объекта, мыслить категориями 80-х годов зная, что другие потоки в данный момент стоят и ждут пока метод отработает в этом потоке... Что то новое могут предложить функциональные языки, там порядок вычислений неважен, а вместо общей памяти, для связи между потоками данные копируются, поэтому все эти локи-анлоки, там не нужны. |
| Автор: W4FhLF 7.6.2008, 16:27 | ||
Хорошо, давайте выберем задачу, которую можно распараллелить и при этом нужно синхронизировать отдельные части, назначить области видимости каких-то данных или даже редукцию, в общем, чтобы задача была необъёмная, но с подвыподвертом |
| Автор: JackYF 7.6.2008, 16:47 | ||||
Ещё раз: тебя не смущает, что GCC доступен на большем количестве архитектур, чем Java? Добавлено через 5 минут и 33 секунды
Я фигею, дорогая редакция. Нашёл, блин, авторитетный источник - анонимуса на ЛОРе |
| Автор: Мастер 7.6.2008, 17:03 | ||||
К этому можно было бы вернуться, позже, но у меня задачи пока нет на Java. (Сори.) Впринципе, если вы хотите быстро с Си перейти на Java, могу дать совет и прислать примеры. Совет: Есть такая книга: "Программирование на Java, 1001 совет" Марк с. Чен, Стивен В. Грифис, Энтони Ф. Изи, Издательство Попури, 1997 год. Книга, хотя и старая, но ничего лучше я нет видел. У меня есть приеры(0.8М) к ней, и, кажется, английский вариант этой книги в электронном виде. Ссылка: http://ru.sun.com/java/books/online/vol1/ch1.html
Скорость исполнения Java байткода увеличится, и будет не хуже чем у Си, если его компильнуть, но при этом может увеличиться обём кода, что не всегда допустимо. Скорость выполнения кода часто не так важна, как сам факт того, что он(пусть медленно но) работает. |
| Автор: JackYF 7.6.2008, 19:22 |
... и поэтому, наверное, пользователи жалуются, что то тормозит, это тормозит... |
| Автор: Lazin 7.6.2008, 19:39 |
| Ну, для многих применений Java очень даже хороша, многие вещи там делаются намного проще чем на С++ и часто более экономически оправдано. Если к примеру основную нагрузку на систему создает работа СУБД, то на чем написана программа которая с ней работает уже вопрос третий Но все-же, неприятно когда ты это запускаешь, а оно как начнет тормозить |
| Автор: MAKCim 7.6.2008, 21:01 | ||||||||
| Мастер начинает утомлять своим бредом однако пока Добавлено через 8 минут и 55 секунд и этот человек (троль?) еще говорит о распараллеливании...
почитай для начала, чем отличаются CISC и RISC процессоры а за одно, зачем нужен компилятор
что ни фраза, то перл (ну кроме, быть может, первой)
пипец... ну и нафиг тогда Java вообще? смысл байт-кода - кроссплатформенность на уровне бинарных файлов в общем резюме: Мастер, ты абсолютно не разбираешься в том, о чем говоришь тут два варианта: либо ты просто стебешься, либо хуже... |
| Автор: chipset 7.6.2008, 21:31 | ||
![]() |
| Автор: Мастер 8.6.2008, 22:29 | ||||
Байт код не только для кросплатформенности создан, он ещё позволяет оптимальнее использовать ресурсы компьютера. Если компильнуть байт код, то получится натив. Этот натив может потребовать больше ресурсов.
|
| Автор: nerezus 9.6.2008, 06:47 | ||
http://ru.wikipedia.org/wiki/JIT |
| Автор: Mayk 9.6.2008, 07:23 | ||
Ты хочешь сказать что в яве дедлоки невозможны? Отвечай "да" или "нет". |
| Автор: Lazin 9.6.2008, 11:32 | ||||||
он уже написал выше, что не знает что это такое Добавлено через 1 минуту и 9 секунд
|
| Автор: Мастер 9.6.2008, 11:55 | ||
Впрочем, не о том говорим. Я так понимаю - вопрос стоит такой: нужно ли переходить с Си на Java для программирования контроллеров. Я уверен - нужено. |
| Автор: MAKCim 10.6.2008, 13:03 | ||
там процессоры байт-код напрямую исполняют? Добавлено через 3 минуты и 8 секунд мы говорим в данный момент о том, что вы абсолютно не разбираетесь в том, о чем спорите навряд ли кто-то ваши слова воспринимает всерьез |
| Автор: LSD 10.6.2008, 13:13 |
Зависит от процессора, некоторые да. |
| Автор: MAKCim 10.6.2008, 13:33 |
хорошо |
| Автор: Alexandr87 12.6.2008, 07:27 |
LSD, если не затруднит, можно список таких процессоров и моделек телефонов или девайсов в которых они используются. |
| Автор: Lazin 12.6.2008, 09:26 |
| я не LSD, но вот http://www.atmel.com/products/AVR32/ |
| Автор: LSD 12.6.2008, 21:41 | ||||
Это ты лучше у http://vingrad.ru/@javastic-а или еще у кого из J2ME-шников спроси. Вообще у Sun есть такая эталонная реализация такого процессора picoJava:
а уж каждый производитель процессоров волен ее лицензировать и использовать в своих процессорах. |