Какой язык программирования по вашему мнению самый лучший? (имеются ввиду компилируемые языки)
И почему именно он?
естественно на первом месте Ассемблер, на 2 месте у меня C++ за то что его компилятор более хорош чем делфовый в плане расхода места и скорости выполнения конечной программы.
Для разных задач разный.
Написать большой проект - Си
Балушку - сойдет и Дельфи, и Васик
у каждого свои достоинства и недостатки...
C++ предстоит выучить =)))
Делфи, ибо простой.
Асм, ибо классика.
>> Для разных задач разный.
Вот именно. Дельфи больше подходит для работы с базами данных, но на нем не напишишь низкоуровневых приложений (драйверов например). Для этих задач лучше подойдет C или Asm. А VB - идея хорошая, реализация плохая - надо таскать с собой библиотети (или надеятся, что они есть) и постоянно обращаться к ним - понижается скорость работы, отсюда вывод - бейсик не подходит для написания более-менее серьезных приложений, а лучшее применение ему - макросы в M$ Оффисе! Java. Неплохой язык, мультиплатформенный... тормозной правда
, больше ничнго сказать не могу. Assembler на сегодняшний день существует только в виде вставок в код более высокоуровневых языков. Писать прогу полностью на нем (особенно оконную под Винду) - похвально, похвально... к старости может и закончите...
Лучше использовать для написания функций (вышеупомянутых asm-вставок). Си - хороший язык, только немного сложнее для изучения чем Дельфи и компилируется долго.
Про остальные языки (фортан, ада) и говорить нечего - они давным-давно устарели и пользоваться ими нет никакого смысла (много людей сейчас перфокартами и пятидюймовыми дискетками пользуется? вот-вот...)
Поправка небольшая: в офисе не VB ,а VBA разница большая, поверьте, месяц с ним уже маюсь.
Меня радует Ruby, так как уже второй год его учу.
ASSEMBLER FOREVER
вот сёдня прогу написал, которая загрузочный сектор затирает )
и может записать туда что ты захочешь вместо стёртых данных.
так и винду мона угробить )
а помоему глупая тема..какой язык лучше???
нельзя сказать не про один язык..во всех языках програмирования свои минусы и свои плюсы...
и каждый язык создан дял каких-то целей...
например чистое самоубийство на ассемблере 3D-action писать..или на VB Windows!!! так что тут кто какой предпочитает..и всё..
на асме писать 3D-action самый раз
только долго писать надо будет.
зато игра будет ресурсов меньше жрать.
Асемблер и C++
С программирование сталкивался довольно редко, но основные задачи решал на
Delphi, Perl, PHP
Сейчас больше всего интересуюсь дельфёй =)
ну и опрос......что лучше запорожец или феррари?
хех, по даче ездить - запор, девчонок кадрить - феррари =)))
вот щас для меня актуален MPASM- ассемблер микроконтроллеров фирмы microchip.
А так - Java (не путать с javaScript)
СИ++
JavaSript & Java
Си ща учу...круто))))
Java
Для работы - Borland C++ Builder. Но потихоньку перехожу на мелкософтовские вещи. Под 64 разряда Борланд уже ничего не сделает. Его уже нет.
А лоя души - ЛИСП!!! Я сам когда-то написал интерпретатор для языка Лисп (и назвал его Топо-ЛИСП. Правда, он под DOS, 16 разрядов. Правда, там используется XMS, EMS, свопинг на диск и бездонный виртуальный стек...
C/C++ и спорить даже неочем!
+1
А как насчет C# ?
Забыл впихнуть его в мой список....
тогда:
=> C рулит!
Паскаль - для user-программ
Ассемблер - для системных
может еще Java (для UNIX/Linux)
В АссемБЛЕре я разочаровался. Он абсолютно непереносим. Скоро 32-разрядная архитектура и вовсе сдохнет, тогда ассемблер другой понадобится. "С" более переносим, даже на другие процессоры, а системные проги (даже драйверы) можно писать на нём (я писал VXD под Win-95/98 на С, но не ++, надо только слинковать с маленьким модулем, написанном на Ассемблере). Если привые к С/С++, то можно всё что угодно. Раньше я писал на Паскале. Паскаль более дубовый язык, но и на нём многое можно. Например, имхо, Borlsnd C++ Builder очень портит дельфёвая реализация VCL.
Напрягает разнообразие языков. Когда приходится одну прогу (но разные её модули) писать на C--/С++, Паскале (Дельфи), Бейсике (VBA), SQL и Ассемблере... Ну, нафига, спрашивается?... Я думаю, что будущее за С-подобными языками, к которым я отношу и джаву. Ну, сама джава - это больше для апплетов и серверлетов...
Yj lkz leib - dc` hfdyj - LISP? b njkmrj LISP!!!
LISP)) это же вроде бы алгоритмический язык?
Ну, да! Конечно.
Когда-то я писал на AutoLISP под AutoCAD. Если кому-нибудь интересно, могу дать свою программу, которая реализована на AutoLISP, и она в среде AutoCAD реализует моделирование оптических систем. Можно расчитывать оптические системы любой сложности. Но больше она ориентирована на любительское телескопостроение.
Могу также поделиться вирусом, который я написал на АвтоЛИСПе
Ещё я когда-то написал собственный интерпретатор языка LISP, который называется TopoLISP. Там поддерживается управление топологией списков. И что интересно, хоть Лисп означально не имеет поддержки объектно-ориентированной парадигмы, но достаточно было написать небольшой модуль на самом Лиспе, как среда этого языка стала объектно-ориентированной!
На Лиспе хорошо писать системы искусственного интеллекта.
А ещё Лисп обладает удивительными свойствами. Например, можно написать интерпретатор Лиспа на самом Лиспе. Легко на нём пишутся автоаппликативные и авторепликативные программы, а так же программы с самомодифицирующимся кодом. Короче, Лисп - это идеальная среда для вирусов, червяков и прочей виртуальной живности. Да к тому же, с искусственным интеллектом!
Лично мне - лень под каждую платформу. Тем более, которой пока ещё нет. А хочется чего-то вечного, чтоб сразу на века... Ну, как наши предки делали. Самолёты Ил-14, Ил-18 до сих пор кое-где летают... Ракета Р-7 (это первые две ступени, которые вывели первый Спутник, а в зависимости от третьей ступени она называлась "Восток", "Союз", "Молния"...) тоже летает до сих пор... Вот, хотелось бы чтобы и программы такими же были... Но, вот, что есть насчёт даты-времени в стандартной библиотеке (stdlib) ANSI-стандарта языка C (из С++/С# её функции также доступны), всё это будет правильно работать где-то до 2038 года. То есть, грядёт "проблема 2038 года", и тогда многие программы, написанные на С/С++, единомоментно сдохнут. Это касается 16- и 32-разрядных платформ Windows (подозреваю, что и под UNIX тоже, и даже MAC OS). Возможно, в 64-разрядных версиях эта проблема уже не стоит. Проживёт ли архитектура 16/32 разряда ещё 30 лет - я не знаю. Но многие предметы 30-летней давности (не только самолёты и ракеты, но иавтомобили, мотоциклы, холодильники, велосипеды, фотоаппараты, телевизоры, радиоприёмники, катушечные магнитовоны и проигрыватели виниловых дисков) не только работают, но и во многом превосходят современные аналоги.
Насчёт ассемблера.
Кстати, есть (не очень, правда, распространены) лисп-машины, пролог-машины... Там такие языки как Лисп (конкретно, Зета-лисп), Пролог и т.п. поддерживаются на аппаратном уровне: по сути они являются для них ассемблерами.
Я думаю если СССР прожил на десяток лет больше то наши программисты точно написали бы супер программы на века думаю что были бы у нас самые лучшее вирусы и трояны для взлома американских компов в белом доме
На счёт языков я не знаю не один кроме языка для написания web странниц и то плохо знаю
Вообще, здесь про вирусы писать - это оффтоп.
А так, чисто теоретически, все языки, обладающие тьюринг-полнотой - эквивалентны. По этому поводу есть "тезис Чёрча". То есть, любой алкогоритм, который можно выразить на одном тьюринг-полном языке, можно и на любом другом таком же.
Но. Наличие выразительных средств, ВСТРОЕННЫХ в этот язык - различается. Я, скажем, представляю себе, как написать на С подпрограмму, которая компилируется в эквивалентный машинный код, как получается на С++ при реализации метода некого класса.
Но я не знаю, как можно заставить его (не прибегая к инлайн-ассемблеру, на котором можен всё) передать массив по значению или возвратить из функции значение типа массива (структуры, и т.п., но не по ссылке или указателю). И чтобы это было совместимо со всеми версиями компилятора (от Microsoft, Borland, Watcom, Symantec, IBM...) А на Паскале как написать функцию, которая берёт неопределённое количество параметров... Паскале-подобные функции на С/С++ писать можно - там есть модификатор PASCAL, STDCALL или WINAPI (весь API Windows сделан по-паскалевски, ибо Си к паскалевскому стилю приспособить можно, наоборот - нет). Но всё это - детали внутренней кухни, которая может позволять или не позволять реализовывать алкогоритмы эффективнее, быстрее, жрать меньше памяти... Но по сути - ничего принципиального. И вообще, в 64-битном режиме x86-е процессоры (что Intel, что AMD) ведут себя больше похоже на RISC-процессоры типа ALPHA, SUN и иже с ними... У них там не 8, а уже 16 РОНов, сегменты отсутствуют как класс, и т.п. Там уже обретает смысл использовать ключевое слово _register...
Хех, комрад drusha очевидно, забыл, что LISP - прежде всего, функциональный язык и он не столь гибок, как ASM.
Нет, например инсталлер (кому-то смешно? на AltLinux инсталлер именно на ЛИСПЕ, исходники сам видел) удобнее будет на нем написать, а не на асме.
Для "оконных приложений" он примерно так же геммороен, как и асм.
ТЕперь о переносимости- да , под UNIX синтаксис асма отличается, например, приемники и передачи менеются местами и т.д.
Однако гооврить о ПОЛНОЙ непереносимости нельзя.
Ну, как я уже упоминал, существуют лисп-машины, в которых он поддерживается аппаратно (фактически являясь для них их родным асмом) Я не помню, как тот комп назывался (дело было в прошлом веке), но у нас в институте такой стоял. На нём был Зета-Лисп - очень продвинутая версия Лиспа. Там и ООП реализован, и графика, и оконный интерфейс... Функциональный - это "чистый" (True)-Лисп, который практически никому не интересен (кроме чисто учебных применений).
Что касается асмов с другим синтаксисом, то это не под Unix, а под другой проц. Unix с самого начала задуман как портабельная ось под разные процы. Мне когда-то приходилось писать на Асме под VAX, PDP (СМ-4)... Так, там было 15 РОНов, 3-адресная (кажись, так, если не путаю с асмом под IBM-360/370 или наш аналог EC-1061). То есть, там в команде, которая выполняет какую-то операцию, указывается не 2 адреса, а 3: откуда взять первый и второй операнды, и куда положить результат. Его можно класть на место первого или второго, или какого-то совершенно третьего регистра...
А ещё я видел (не писал, правда) такой обобщённый ассемблер под PICK. Он, типа, портабельный. Но я не вижу смысла называть его асмом. Там уже теряется однозначная связь между строчками исходного кода и машинным кодом.
Но, имхо, сейчас уже нет смысла изучать 32-битный асм, поскольку все современные процы уже поддерживают 64 разряда, и года через 3 все 32-битные версии виндов (и линюксов, наверное) уже сдохнут. Конечно, современный Пентиум (даже с 64-битным расширением) поддерживает и 16-битный код 286-го проца (и даже реальный режим 8086/8088), но кто-нибудь под это сейчас пишет? Тем более, на 16-битном асме...
Про последний абзац-
Никакой ПОЛНОЦЕННОЙ 64-битизации (я тут сфамильярничаю немного) нет. Вот во времена прехода с 16 на 32 - да, добавились регистры, полностью изменилась "техника" программирования и т.д.
А сейчас все что есть на руках - это обыкновенные 32x PE, к которым дописано несколько дополнительных секций. И "портировать" обычные EXE туда-обратно несложно.
ПРосто вся мощь архитектуры 64-х битников не применяется.
Нас просто дурят.
(подробнее можно почитать у Криса Касепрски (мыщьХ, Нецуми))
А 16-битный асм отлично подходит для первоначального обучения и знакомства с языком.
Как раз, в 64-битной архитектуре (доступной в 64-битном режиме) отличий от 32-битной гораздо больше, чем при переходе с 16 на 32.
Кстати, с тех пор как появилася 32-битная архитектура 80386 (кажись, 1985-86 гг прошло примерно 10 лет прежде чемпоявилась возможность использовать её в полную мощь (пришли полностью 32-битные операционки типа Win-95, OS/2 Warp 3.0). Сами 386-е процы не дожили до этих дней, тогда уже 486-е заканчивались...
А до этого с 32-битным кодом была примерно такая же петрушка, как сейчас с 64-битным. Была такая примочка DOS4G, DPMI и т.п. В обычный DOS-овский EXEшемк вставлялись сегменты (или секции), которые надлежало грузить в 32-битные сегменты защищённого режима. В свамой программе был стартовый код, который переводит проц в звщищённый режим, делает там 32-битный сегмент, грузит туда надлежащие секции программы (как будто это просто данные), оформляет сегмент как исполняемый, и передаёт туда управление...
А формат PE - потому он так и называется Portable Executable, то есть, там с самого начала предусмотрена возможность переноса на другую архитектуру... Так что, вполне возможно, что и через 10 лет этот формат будет так и называться - PE.
Так что, да, я согласен, что СЕЙЧАС никакой полноценной поддержки нет. И она будет актуальна когда количество физической оперативки на среднем компе перевалит за 2 Гб (тем более, за 4Гб). Сейчас новые компы обычно комплектуют примерно одним гигом. Двумя - это уже довольно навороченные. А четырьмя - и более это только крутые серваки, хотя в той нише гораздо крепче позиции Sun (Solaris), Unix и т.п. А до двух гигов обычные винды ещё худо-бедно потянут...
Доступ к 64 Гбайтам памяти в P6 возможен за счёт 64 режима кбайтных страниц, который в Windows не используется. К тому же, в 32-битном режиме в одном 32-битном сегменте может быть не более 4 Гб памяти. А Win-32 приложений характерна FLAT-модель памяти, когда всё в одном сегменте (вернее, есть сегмент команд и сегмент данных, база и размер которых совпадают) - то есть, всё происходит в линейном адресном пространстве размером не более 4 Гб. На самом деле, Windows ограничена ещё больше: процессу она даёт не более 2 Гб, а ещё 2 Гб резервирует для своих нужд (там сидят драйверы уровня ядра, видеобуфер и всё такое). Конечно, по идее, даже при таком раскладе на компе, у которого 64 Гб физической памяти, можно было бы запустить 32 процесса (каждый в своём адресном пространстве), и каждому дать по 2 Гб... На самом деле, то же самое можно получить с использованием файла подкачки (и имея жёсткий диск размером более 64 Гбайт) даже на 386-м процессоре. На 64 Гб физической памяти будет пошустрее, и всё.
А спич я веду про то, чтобы дать ОДНОМУ ПРОЦЕССУ (например, крутому серверному процессу) более 4 Гб физической оперативки. Или хотя бы виртуальной. Но 32-битные версии Windows не способны даже на это. А между тем, уже даже 512-мегабайтным видеобуфером сейчас никого не удивишь. Скоро 2 (или даже 4) Гбайта адресного пространства (даже виртуального) будут как бревно в глазу, как 640 Кбайт в DOSовские времена... Но тут уже нужна другая операционка. Среда Win32 не пойдёт.
По-моему, для программера (особенно ленивого, типа меня ) лучше всего Java,
ибо там навалом всяких примочек, облегчающих программерскую жизнь.
Правда, туда ещё надо нормальный IDE, я использую Eclipse.
С точки зрения юзера, особ. если у него медленный / не очень быстрый комп, то
лучше, наверное, будет Delphi или CPP.
Я вот думаю, мне басик учить или сразу С++? Програмеры говорят, что бэйсик ща сосёт.
бэйсик всегда сосал.
Дельфи лучше учи
Ну у меня ещё полгода есть для принятия решения. ))) Буду иметь ввиду. А чем дельфи хорош?
Ну вообще, надо решить, ЧТО ты будешь программировать, собственно
Делфи - виндовые проги. Я не пишу на нем потому, что, в основном, в клепаемых мною прогах, используется Qt. Мне так удобнее.
Дельфи чем хорош? В Делфи можно быстро написать что-то простое или среднего уровня сложности. Например, qip написан на дельфи, если не ошибаюсь. А если собираешься писать что-то конкретно серьезное и большое... Си сложнее в разы.
Доступ к 64 Гбайтам памяти в P6 возможен за счёт 64 режима кбайтных страниц, который в Windows не используется. К тому же, в 32-битном режиме в одном 32-битном сегменте может быть не более 4 Гб памяти. А Win-32 приложений характерна FLAT-модель памяти, когда всё в одном сегменте (вернее, есть сегмент команд и сегмент данных, база и размер которых совпадают) - то есть, всё происходит в линейном адресном пространстве размером не более 4 Гб. На самом деле, Windows ограничена ещё больше: процессу она даёт не более 2 Гб, а ещё 2 Гб резервирует для своих нужд (там сидят драйверы уровня ядра, видеобуфер и всё такое). Конечно, по идее, даже при таком раскладе на компе, у которого 64 Гб физической памяти, можно было бы запустить 32 процесса (каждый в своём адресном пространстве), и каждому дать по 2 Гб... На самом деле, то же самое можно получить с использованием файла подкачки (и имея жёсткий диск размером более 64 Гбайт) даже на 386-м процессоре. На 64 Гб физической памяти будет пошустрее, и всё"
Да, это точно
Java удобнее, так как поддерживается практически всеми платформами. Например, я написал прогу на Java, она работает на x86, на ARM (PocketPC, Windows Mobile 2003 + Jeode Runtime), плюс с использованием тех же классов, переписав только интерфейс и ввод-вывод, можно запускать на мобильнике.
Правда тут есть свои заморочки, например на КПК не поддерживается Swing, только Awt.
сейчас бы 2005 год и на C# и php писать
Антон собирается
Что собирается ? учить чтоле ?
Я думаю у Антона получились бы арты необычные . в силу его необычного восприятия
Ну с#
C# ну я думаю это продлиться не долго
очень сложно , но зато плюсы есть доки на русском
ну это все такое вилами по воде , все архитектуры только на англ можно читать
в каакой хоть области , десктоп , сервер или юнити это вонючее
все это слишком годо затратно
Ну ты приезжай выясни у него сам, объяснишь ему по белорусски