Реконструктор> Первый VB появился в 91-м. 32 битный VB появился в 96-м. Тогда он уже завладел почти весь рынок.
О VB в мире заговорили только начиная с 3-й версии
Серьёзно в гору он пошёл только с 4-й
Реконструктор> А рисуют только ГУИ, алгоритмы, хочеш-не хочеш, пишут ручками.
Ты не видишь фундамент разницы. Если до VB программировали потоково-ориентированные программы, то VB - это уже интерфейсно-ориентированное программирование. Ты пишешь обработчики событий, а сам механизм их вызовов от тебя формально скрыт.
Реконструктор> Не впадай в разсуждения о нюансах. Все они нацелены на один и тот-же класс задач, который называется "бизнес программирование".
С твоей точки зрения - может быть
Реконструктор> Ты мне напиши что-нибудь на джаве для 8 битного микроконтроллера. J2ME используется только для написаня мелких игр для телефона. Ничего больше.
Но это сегодня огромный рынок
В т.ч. и по деньгам
Вон, у меня знакомый вовремя подсуетился и сейчас только в России имеет несколько сот баксов в месяц только с одних картинок для мобильников
При этом абсолютно ничего не делая для этого
Пустячок, а приятно. Это - любитель. Представь, сколько на этом наваривают те, кто занимается этим профессионально?
Balancer>> Это опять никак не VB и не COBOL Реконструктор> Кстати, VB тоже генерит псевдо-код. Идея была точь-в точь как у жабы. Написал раз, крути везде. Только что-то не так... Вносить изменения при порте на другую платформу все-таки приходится...
Псевдокод не говорит ни о какой переносимости. Ты это о чём, вообще? Например, первый Паскаль работал на P-code (тогда это символизировало Pascal-code и только потом переиначили в Pseudo-code), но ни о какой переносимости речи не шло
Элементарный QB генерил байткод. Я уже молчу про
все современные скриптовые языки. Классический форт генерирует шитый код. Тоже как бы отвязанный от архитектуры.
В общем, ты сказал фразу на манер "кстати, программы на VB тоже написаны буквами, точь-точь, как на Си++, написал раз - читай везде"
Реконструктор> Кстати, у меня один знакомый в качестве дипломной работы делал интерпретатор для Пролог-а (если я не ошибаюсь). Писал на c++ под линуксом (компилятор gcc). Когда все было готово и итрерпретатор был отлажен, в качестве эксперимента скомпилировал свой проект под виндами, опять с тем-же gcc.
GCC и позиционируется как межплатформенный компилятор Си++. Но мне уже повторяться в лом, я пару раз комментировал различия Жене в этом топике. Перечитай.
Реконструктор> Так что там по поводу переносимости кода?
Если бы C++ исходники не компилировались одним компилятором на разных платформах - дерьмо это был бы, а не язык
Ответ же на твой вопрос - смотри выше.
Реконструктор> Ну, почему-же тогда все продукты Corel, Adobe, всякие CAD/CAM/CAE, офис пакеты, всякие антивирусные и сетевые продукты, архиваторы и практически все продукты на рынке написаны на старом и отстойном Ц++?
Потому что рекомендую посмотреть на возраст этих продуктов
И каков был выбор средств разработки на рынке, когда писался тот же Фотошоп-1
А вот когда проект возникает позже, да ещё народ так не озабочен совместимостью... Например, плагины и скрипты для GIMP, изначально ориентированные на нативные и мевшие кучи проблем с межплатформенной переносимостью, теперь работают на Питоне.
Кстати, к вопросу о переносимости. Где продукты Adobe или Corel для Linux, например?
А GIMP есть для кучи платформ.
...
Реконструктор> Да, ты можеш написать, например JOffice или JDraw, намного быстрее, чем М$ и Corel сделают MS Office и CorelDraw, но покупать твои продукты почему-то никто не будет. Почему-то быстрописание рынок не оценит.
Ты опять путаешь тёплое с мягким. На продукты, типа MS Office или CorelDraw были потрачены сотни человеколет. Пусть на Java ты пишешь в 10 раз быстрее. Значит, нужно потратить минимум десятки человеколет на развитие таких продуктов.
Коммерческие разработчики за такие продукты не возьмутся. Очень сомнительна прибыль. Заметь, ведь коммерческих конкурентов МС Офису нет не только на Java, но и на других языках. Даже на Си++. Может, дело тут не в языке и не в скорости разработки?
Ну а некоммерческие проекты такого объёма пока просто нереализуемы. Никто не будет корячиться над проектом, не приносящим дохода десятки лет. Или команда в 10 человек не будет пахать годы
Balancer>> Сравни написание вывода строки на ассемблере и на Си. На Си будет и быстрее (printf уже стандартизирован в stdio), и надёжнее (он уже отлажен).Реконструктор> Не понял о чем ты.
Напиши вывод строки "Hello, world!" на голом ассемблере, с использованием только прерываний BIOS. Потом напиши на Си++. Сравни затраченное время.
Ну, вот ещё. Для сравнения посмотри на ассемблерный код на
Мерянье пи... э... попугаями. Быстродействие языков. [=KRoN=#24.11.02 16:13]
Его написание с отладкой заняло у меня 45 минут. То же самое на Си++ пишется за пару минут, а на O'Caml - за пару десятков секунд
Где больше времени на тестирование? Где выше вероятность допустить ошибку? Кстати, смех смехом, но и скорость работы программы там растёт в том же ряду. Самый медленный - ассемблер. потом - Си++. Самый быстрый - O'Caml
Реконструктор> Тоесть, если в жабе у тебя массив из 10 элементов, но ты адресуеш 11-тый, ничего не будет и программа продолжет работу? Как не странно, GPF чаще всего возникает именно по этой причине.
1. Это причина уже совершенно ламерская. Если программист не может отследить объём массива, то его место в биореакторе
Освобождение указателей, в случае сложного взаимодействия классов - задача куда более серьёзная.
2. На Java вероятность наступить на эти грабли намного меньше, так как там есть оператор прохода по всем элементам массива. Вместо for(int i=0; i<array.size(); s++) {... } можно использовать конструкцию типа for(String s : array) { ... }
3. На Java приятнее работа с исключениями. Превышение границ массива просто выкинет исключение, которое ты спокойно обработаешь и пойдёшь работать дальше. На моём l2j-сервере таких исключений возникают тысячи каждый день, но и серверу и игрокам от этого пофиг
Всё работает
Реконструктор> А уборщик - это хорошо, но если нет возможности его отключать, то язык самоизолируется от очень большого класса задач.
От реалтаймовских задач. При чём от весьма узкого их круга
Скажем, l2j-сервер - самая, что ни на есть реалтаймовая задача
В большинстве из них время отклика не важно.
А там, где важно - есть какие-то RT-Java. Не видел, не щупал
Реконструктор> Новые, более тупые банкиршы и бухгалтершы....
Вокруг меня ни одного банкира или бухгалтера? М.б. они вокруг тебя вьются?
Реконструктор> Не спорю, надо развиватся. Но трятить все свое время на усвоение новых бизнес языков - безбрежная глупость.
Время тратить нужно на языки, которые серьёзно повышают твою производительность. Сегодня, в зависимости от класса задач, это PHP, Python, Java
У тебя могут быть иные задачи, где незаменим Си++. Но я немного помню твои вопросы и по ним могу судить, что тебя удерживает - элементарная лень
Реконструктор> Будеш всю жизнь на зарплате сидеть.
Это касается того, кто ленится повышать свою производительность
А "не на зарплате", а "со своего дела" деньги получать - это, вообще-то, к программированию уже никакого отношения не имеет
Это уже будет роль менеджера, а не программиста
Реконструктор> Странно, по моим скромным оценкам - встраиваемый софт, примерно 90% от всего реально изпользуевамого софта.
Вот только финансовые гиганты у нас MS, IBM, Sun... А не Moulinex или Braun
Реконструктор> Джавой там и не пахнет, никогда не пахло, и никогда пахнуть не будет. Представляш, ядерный реактор надо аварийно охлаждать, а сборщик мусора начал свою сборку...
Ага. Надо реактор охлаждать, а на Си++ указатель потерялся
Пока все крупные аварии с программной подоплёкой были как раз на классических языках
Вот пойдут языки с той же сборкой мусора в RT-системы - посмотрим их реальную эффективность в этой области. Но дело это, согласен, стрёмное. Но ядерные реакторы - это как-то, всё же, не массовый рынок
Реконструктор> У Ц#, тем более у жабы, возможности воздействовать на порты нет никакой.
И у C++ нет возможности воздействовать на порты. Никакой
Реконструктор> Типа, autoexec.bat - вытесняет винду, или как? Ты вообще, понимаеш что ты говориш?
Родной, autoexec.bat уже сто лет не используется
Реконструктор> M$ сделал очень радикальные ошибки. А Symbian ничего общего с джавой не имеет.
Любой Symbian-мобильник живёт на J2ME-приложениях.
Реконструктор> Странно, в мире, в котором живу я, нормальные программисты девелоперов сильно ненавидят. <_< [»]
Да ты вообще в каком-то очень странном мире живёшь