Именно по синтаксической части (мы же о ней спорим?),
Я вообще не спорю...
Просто черпаю знания, пишу свои.
На счёт goto :)
Презабавнийшая фигня с ним. Конечно же без него никуда.
Это было бы очень большое упущение по ограничению в гибкости и оптимизации высокопроизводительных алгоритмов (только идиоты думают, что goto вред).
Но чаще встречаются идиоты, которые не понимают для чего нужен goto.
и потому в энтерпрайз языках его завуалировали.
Есть метки, на которые ссылаются определённые конструкции языка. И это есть правильно.
Против Goto и т.п. конструкций «орут», только те, которые пишут среднестатистические приложения, используют чьи-то библиотеки, а сами ничего толком и не писали.
Нет. Например, высокая мощность и синтаксическая насыщенность конструкций может приводить к написанию write-only кода. Поэтому может быть злом. Собственно, JS именно такое зло. В нём очень сложно анализировать чужой код, поддерживать, разбираться в своём коде в крупном проекте год спустя. Его гибкость провоцирует на использование неочевидных решений. Беда, которая в своё время доставала в Perl'е.
На счёт goto :) Презабавнийшая фигня с ним. Конечно же без него никуда.
Ну, х.з. Я как-то без него стал обходиться ещё во времена перехода с примитивных Бейсиков на QBasic :) И хотя в Си++ за лет 7 активной практики в 1990-х использовал несколько раз, чуть позже на Forth и Java ни разу потребность в goto не возникла. Я не противник GOTO, я исписал тонны кода на ассемблерах и машкодах, где без него никуда, но в практике на ЯВУ в нём обычно просто не возникает надобности.
Я и в последние лет 15, что пишу на PHP, не смотря на то, что язык поддерживает goto, не применял его ни разу :)
идиоты идиоты орут конструкций «орут», только те, которые пишут среднестатистические приложения, используют чьи-то библиотеки
Э... Тебя никто из сторонников структурного программирования сильно не обидел? А то какая-то, прямо, недобрая у тебя к ним аура :)
Другой формат работы с выделением памяти и указателями (из-за архитектурного различия — сборки мусора)
Конечно же это нельзя выделять в особенность как именно языка.
Хотя наверное сборщик мусора, к удивлению некоторых, такие есть в C++
Ну да ладно.
Самое большое отличие помимо того, что в Java отсутсвует нативное обращение к памяти ,что наверное и подразумевалось под сборщиком мусора - это Механизм Аннотаций.
С помошью него какраз и осуществляется разработка невиданных в других языках, Энтерпрайз Фреймороков, типа EJB или что нибудь подобного.
А ты реально писал что нибудь в области архиваторов или обрработки больших потоков данных в виде перобразования изображения на лету или звука?
Мои архиваторы остались на уровне RLE (это было во времена, когда ещё MS-DOS не начала шествовать по стране :D)
С обработкой изображений возился много. От своих методов сжатия (сопоставимых с JPEG, когда он только входил на рынок) до всякого 3D-рендеринга, тренсформаций и т.п.
Видео — занимался фильтрацией, отбрасывая шумы по межкадровой разнице.
Вот со звуком сам не работал, только с готовыми либами :)
вот именно, что нехитрый. В С++ нет анонимных классов, а в Java - перегрузки операторов
Вот, чтобы передать всю эту разницу, и требуется пара страниц текста с описанием различий. Или ты полагаешь, что программист на Си++ не может писать не перегружая операторы? :)
К примеру. Шаблоны так вообще сооовсем другая история.
Вот тут, да, упустил. Тут больше, чем на пару страниц наберётся. Я в голове держу Си++ 1990-х гг, тогда шаблонами почти никто не пользовался.
Я до сих пор этим занимаюсь, использую все нюансы железа и языковых платформ.
С низкого уровня я ушёл где-то во время Pentium и 3D-ускорителей. На первом стало сложно считать растактовки, по вторым не было универсальных способов работы с железом. Так что последний практический код на ассемблере писал где-то в районе 1996-го, а с железом перестал работать около 1997-го.
Где и кем говорено? Можно ссылочки с бенчмарками, если ты так категоричен? И на какой платформе .NET тестировали? Ах, наверное на Windows, потому что под другие платформы официальной реализации нет.
Конечно, юзер дурак. Оценять производительность можно только с помощью специализитованных тестов. Да и и без оценки качества написания кода никуда. Можно наговнокодить на qt и взять аналогичкую программу на gtk2 написаную 7 лет назад и вылизаную за эти года и верещать о том что qt тормоз. Да и сравнение qt и gtk не совсем коректно так как qt это фреймворк а gtk всего лишь графическая либа. По сути gtk кроме рисования формочек(окошек) ничего не умеет, в то время когда на qt можно решить почти любую задачу.
А если говорить как юзер то у меня qt не тормозит, а вот gtk зачастую не только тормозит но и косячит как гуй (в основном это касается gtk3 конечно)
А мне не нужны специализированные тесты. Мне достаточно посмотреть как в Kde окошки при переключении по alt+tab построчно прорисовываются, а в Xfce моментально.
Ну вот. Я же говорю что это проблемы юзверей, у меня все моментально в кедах отрисоввывалось. Крыса не без косяков, да урезана она, но для очень слабых компов пойдет.
2) полумеры. пишем критические участки кода на С и подключаем через JNI
Ты не прав совершенно.
Напрмер взять тот же OpenCL (это первое что пришло на ум).
Вызов его функция возможен только через JNI.
Или не считается нужным использовать доступ к аппаратным возможностям для жабы. Пусть мол она хлюпается в своём болоте жаба машины, и никуда нос не суёт?
Считаешь, жаба настолько самодостаточна, что ей своего болота хватает? :)
Считается что программирование - это искусство.
Только от программиста зависит, насколько он удачно («красиво»), применит тот или иной подход.
Одну и ту же вешь можно написать несколькими способами.
К этому относятся теже JNI и возможность переходить по меткам («goto»).
2)так это не программа на Java — это программа на С с зачем-то присобаченным уродливым и тормозным Java-гуем.
знаем мы такое: сейчас мы перепишем критические участки кода на С. потом выясняется, что сборщик мусора на джаве не умеет освобождать память, выделяемую С-функциями, от чего код превращается в С++ без деструкторов. чуть позже выясняется, что абстракции, которые нагородили на ява — перегруженное ООП говно и с С-кодом (который процедурный) дают нечитабельное нечто. в конце приходим к выводу: проще сразу было написать на плюсах.
а с того. я запустил процесс вычисления, получил результат, результат передал жабке. но результат-то выделен в С, динамически. жабке чтобы не получить утечку памяти, придётся задуматься об освобождении ресурсов.
а с того. я запустил процесс вычисления, получил результат, результат передал жабке. но результат-то выделен в С, динамически. жабке чтобы не получить утечку памяти, придётся задуматься об освобождении ресурсов.