unr303

Как научиться программировать или какой язык учить

Рекомендованные сообщения

Ну во-первых надо начать учить язык программирования высокого уровня. (pascal, C++), а уж потом переходить к низкоуровневому программированию.

 

Я тоже собираюсь учится програмированию и именно на C++,хотя некоторые знакомые агитируют учить другие языки например дельфи,и меня заинтересовали фразы "высокий уровень " и "низкоуровневое програмирование" ,что это такое, в чем разница ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я тоже собираюсь учится програмированию и именно на C++,хотя некоторые знакомые агитируют учить другие языки например дельфи,и меня заинтересовали фразы "высокий уровень " и "низкоуровневое програмирование" ,что это такое, в чем разница ?

попробуй для начала вобще паскаль (но не бейсик, боже упаси), дабы понять нужно ли тебе программирование вообще и есть ли у тебя склонности к алгоритмизации. Низкий уровень - это программирование на уровне железа и ядра операционной системы, высокий - программирование на уровне приложений. Обычно высокоуровневые программисты плохо представляют реальное устройство компьютера, а обычно используют всяческие каркасы (frameworks), если хочешь быть реальным программером, учи С, потом С++, т.к. для начала С++ в понимании явно тяжелее. Впрочем, найдутся и агитаторы за дельфу, за яву и прочую ересь, не слушай их, реальный язык программирования - асм, остальное петушки. <_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мда... Для начала Вирта("Алгоритмы и структуры данных") и Pascal, если знаний по программированию нет никаких. Потом Java/.NET + что-нибудь из динамики типа Python/Ruby.

 

И не учите Delphi, Assembly, C, С++. Это уже никому не надо. Если вы системным программированием только не собираетесь заниматься.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И не учите Delphi, Assembly, C, С++. Это уже никому не надо. Если вы системным программированием только не собираетесь заниматься.

это почему это не надо? программист, который знает асм или С с С++ у нас уже не программист? Зато девка, которая из фреймов собирает прогу, вот это истинный программер да? А как вы будете без знания асма отлаживать вашу программу? Как вы сможете без знаний С++ изучать MSDN или другие мануалы? Ересь не порите, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем мне ASM при отладке, когда у меня виртуальные машины и интерпретаторы?

 

Зайдите на Dice.com и посмотрите какое количество вакансий по Java, .NET, C++, C & Assembly -- вот то, чем живёт индустрия.

 

Ничерта не понял про фреймы, и мануалы без знания C++ изучаю легко)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем мне ASM при отладке, когда у меня виртуальные машины и интерпретаторы?

 

Зайдите на Dice.com и посмотрите какое количество вакансий по Java, .NET, C++, C & Assembly -- вот то, чем живёт индустрия.

 

Ничерта не понял про фреймы, и мануалы без знания C++ изучаю легко)

Не скажи, виртуалки тоже асм-команды юзают, БЕЗ асма никак, я это понял уже давно, тем более иногда бывают случаи когда прога начинает вести себя черт знает как, и помогает только просмотр листига проги в асм копиляции, потому что написать ты можешь что угодно, но асм-реализация может оказатся разной, я надеюсь это понятно.

 

Дельфи сейчас тоже требуется, хотя и не так часто как "названные Чапаевым языки".

 

Это очень хорошо, но все-таки я думаю для того чтоб изучить мануал надо умение чтения, желательно прокачанное до 10го уровня с поддержкой английского языка.

 

ЗЫ мля... я неизлечим... любофь на меня плохо влияет... (((

Изменено пользователем Laster

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прочитал пару постов. mrLIS, жжошь. Оказывается

Ты видимо очень круто асм знаешь =) разрядность этих регистров 16, а ЕAX, ЕBX и т.п. 32, от слова extended. А "стандартные 32-х разрядные процы" - это тоже что-то интересно). Потрать еще четыре дня на асм и умение грамотно писать.

 

а те тут всю книгу переписать должен.. А кому нужно тот понимает..

 

 

И не учите Delphi, Assembly, C, С++. Это уже никому не надо. Если вы системным программированием только не собираетесь заниматься.

 

зря ты так... на асм. получается мож не самый компактный и читабельный но самый быстрый код, к томуже много вещей не сделаешь на современных языках...

А вот нащет Delphi и С++ ты точно зря.. это два самых распространенных продукта в наше время...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

зря ты так... на асм. получается мож не самый компактный и читабельный но самый быстрый код, к томуже много вещей не сделаешь на современных языках...

А вот нащет Delphi и С++ ты точно зря.. это два самых распространенных продукта в наше время...

а ты зря про читабельность асма. Просто Чапай у нас халявщик, и в нутре даже виртуальной машины разбираться не хочет. Не слушайте тех, кто говорит, что скриптовые языки и поделки (крайне похожие на С++) на виртуальных машинах - единственное, что должен знать программер. Вспомните такие языки, как Модула, АДА или Лисп, Кобальд. Где они? А ведь их тоже пророчили на смену Сям. А асм будет существовать до тех пор, пока существует компьютер. А С ближе всех к асму, на С++ можно реализовывать все прадигмы ООП, учитывая, что они и зародились как раз после появления С++ (ведь именно в С++ начали реализовывать ООП). Дельфинарий и прочие пришли гораздо позже.

 

Вердикт таков:

хочешь быть модником, который в любой момент может оказаться у разбитого корыта, зависеть от рамок виртуальной машины или компилятора, учи скриптовые языки, всякие жабы и прочую ересь.

А если хочешь быть профессионалом с большой буквы, быть хозяином компа и знать все его нутро, изучай асм и С\С++, и поверь, отрывать тебя будут с руками (да и з/п у качественного С++ программера (особенно системного) на порядки выше).

Кроме того замечу, что большинство языков живут до тех пор, пока их поддерживает корпорация их создавшая. Вот не станет Sun'a, что как вы думаете случится с жабой? А не станет мелкомягких? Сразу же пропадут такие ее выблюдки как визуальный Васек и С#. Так что думайте сами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на С++ можно реализовывать все прадигмы ООП, учитывая, что они и зародились как раз после появления С++ (ведь именно в С++ начали реализовывать ООП). Дельфинарий и прочие пришли гораздо позже.

ну эт ты погорячился, вообще Страуструп класы, виртуальные функции и т.п. из Симулы скатал, а сама идея ООП появилась ещё раньше.

 

Но в целом про Си и АСМ я с тобой согласен, ещё интересен язык Д, хотя будущее его очень туманно, ведь всё что он сделал это фактически сборщик мусора и реализация СТЛ в стандартных средствах языка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Госспади...

 

Меня умиляют люди, которые думают, что ASM во главе вселенной. Если Вы не писали на Java и не отлаживали приложения под JVM, то и не надо комментировать. Или(если шило таки в одном месте) хотя бы приводите примеры, чтобы подтверждать Ваши пустые слова, где может пригодиться ASM при работе с Java!

 

Java поддерживают IBM, Oracle, Sun, BEA, SAP, Apache Foundation, а с недавнего времени Java ещё и OpenSource под GPL. Так что не умрёт уж точно.

 

С++ - первый ООП? О Smalltalk слышали?

 

"Хозяева компа" могут и дальше считать себя таковыми, ковыряться на ASM и писать только на трушном C++, пока остальные зарабатывают деньги.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Но все-же как никрути а лоу-левел девелопмент в природе есть, и бабло за него платят не меньшее чем за жабу и другие радости ООП. Другое дело что каждый язык занимает свою нишу, и спорить о том что жаба круче цэ, хотя языки эти расчитанны для разных нужд имхо немного не правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Aike,

Никто и не спорит. Просто некоторые не считают, что надо быть прагматичными и идти в ногу со временем и с пеной изо рта обругивают "выблюдки" и "поделки".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Представляется такая картина: разработчики майкрософт, после неудачного релиза висты, ходят по кампусу с кипой листов, с напечатанным на них дизассемблированном кодом винды, и штудируют их в поисках причины их неудач. :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Представляется такая картина: разработчики майкрософт, после неудачного релиза висты, ходят по кампусу с кипой листов, с напечатанным на них дизассемблированном кодом винды, и штудируют их в поисках причины их неудач. ;)

зря смеетесь, потому как ходят, небось даже не слышали про такую штуку, как Microsoft windows debugging tools. Вобще, господам высокоуровневым фанатам хочу заметить, что не будет низкоуровневой поддержки железа, низкоуровнего программирования критических моментов ядра операционнки (ох, хотел бы я посмотреть, сколько будет жрать система, которой для начала своего запуска нужно будет запускать обрезанную виртуалку(на чем, интересно, написанную?), а затем еще и себя поверх загружать), никому нафиг не нужны будут ваши бажные и глючные поделки. А те, кто втирает про востребованность жабных программеров, видать в ИТ никогда и не работали, а тем более з/п асмовских и Сишных кодеров не видели....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

зря смеетесь, потому как ходят, небось даже не слышали про такую штуку, как Microsoft windows debugging tools. Вобще, господам высокоуровневым фанатам хочу заметить, что не будет низкоуровневой поддержки железа, низкоуровнего программирования критических моментов ядра операционнки (ох, хотел бы я посмотреть, сколько будет жрать система, которой для начала своего запуска нужно будет запускать обрезанную виртуалку(на чем, интересно, написанную?), а затем еще и себя поверх загружать), никому нафиг не нужны будут ваши бажные и глючные поделки. А те, кто втирает про востребованность жабных программеров, видать в ИТ никогда и не работали, а тем более з/п асмовских и Сишных кодеров не видели....

Системные программисты ценились, ценятся и будут ценится выше всех остальных, в особенности профессионалов, ИМХО знать С и асм надо, хотя бы быть знакомым с ним настолько, что бы вы в нем не терялись и могли запросто рассказать как и что работает и написать какую-нить программу.

 

ИМХО если все перейдут на всякие там жабы и дотНЕТы, то вскоре у нас будет рынок лажи и багов, которые исправть будет невозможно и покупать может запросто плюнуть на все...

 

ИМХО виртуализация процессов не выход из ситуации ( если будет баг в машине что жаберы будут исправлять чтоль??? ), чтобы была виртуальная машина все равно нужно знать устройство ПК, архитектуру CPU и остального, иначе будет лажа.

 

ЗЫ сколько кому платят я пока не интересовался, но ИМХО, писать дрова ( части ОС, виртуальные машины) сложнее чем кликать мышью, потому что нужно все четко расчитывать, иначе будут всякие баги и лаги, и крахи., а последнее самое неприятное, потому что юзеру крахи точно не нравятся.

Изменено пользователем Laster

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

freemind,

Вы за*бали говорить общими словами и называть продукты "поделками". Сами хоть что нибудь написали стоящее? Сомневаюсь.

 

Про зарплаты, кому надо, тот найдёт. А Вашу неподкреплённую бредятину про C/ASM читать толку мало. У меня знакомый уезжает в октябре в Google на Java Engeneer на 150 + соцпакет(который огого). У нас же(в Москве) на Java зарплата средняя от 2 до 4. Покажите уж зарплату асмовских кодеров =) Желательно с линками на кадровые агенства, что то в US на Dice.com зарплата не такая привлекательная. Видать тока freemind'y платят как Биллу Гейтсу.

 

Laster,

Вы ей богу тоже ересь пишите. Мой вопрос про ASM и JVM чуть выше не увидели что ли? Или ответа нет?

 

Насчёт багов в JVM -- есть багтрекер и Sun, которые выпускают заплатки.

 

И что за лажа и баги?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
зря смеетесь, потому как ходят, небось даже не слышали про такую штуку, как Microsoft windows debugging tools.

Конечно не слышал - я вообще под Солярис пишу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Laster,

Вы ей богу тоже ересь пишите. Мой вопрос про ASM и JVM чуть выше не увидели что ли? Или ответа нет?

 

Насчёт багов в JVM -- есть багтрекер и Sun, которые выпускают заплатки.

 

И что за лажа и баги?

гм... а откуда тогда в том же Sun'е появятся люди кот. этот баг будут искать, исправлять и прочее???? не подумал??

 

ИМХО чем больше вкусностей и функционала предлагает язык, тем больше ошибок ( утечки памяти к примеру ) наблюдается в проекте, потому что становишься все более и более ленивым. Я так же как и ты считал сначала ( когда начинал учится программировать ), но вот только когда начал на траблы натыкаться, понял, что я не могу написать по-нормальному лишь потому, что я не знаю как это работает, и пришлось учить асм, смотреть отчеты компилера в виде асм-команд, читать документацию, кот. опять же предлагала все на асме. Если б не мой курсач, я бы так и думал, думал и дальше, так же как и ты, я бы ща не пытался понять архитектуру 8086 и 80х86, для кот. документацию я нашел только с асм командами, на С там написано было чуть-чуть. Зато мне несмотря на то, что я еще не практиковался с этим, уже известно достаточно, чтоб понимать, как и что работает, и почему именно так. И сейчас проектировать стало заметно проще ( все-таки я из кодера в инженера превращаюсь))) ).

 

ИМХО понимание процессов - важная часть программирования.

 

... чет я немного после валерьянки... )))))))) не суди строго.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Laster,

То, что ты написал, назвается "вода". Ты так и не ответил, зачем при разработке на Java нужен ASM. Или ответ был "для исправления багов JVM"? Смешно...

 

Так значит инженер - это кодер знающий ASM?)) Когда вас будут брать на работу на знание ASM и "понимание процессов" положат... А вот если вы не будете знать алгоритмов, технологий(в той же Java изучение языка по времени - двадцатая часть от изучения фреймворков, тулов и прочего) и методологий разработки(agile, xp, patterns, bdd/tdd), то вам помахают ручкой.

 

Понимание процессов -- задача низкоуровненвего программирования, хотя высокоуровнего впрочем понимание работы VM/интерпретатора тоже важно, но никак не ASM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Опять буями меряемся?

 

На моей памяти я несколько раз учавствовал в подобных дискусиях.

Пример номер раз.

Спор delphi vs asm aka высокий уровень vs низкий. После того, как все аргументы были исчерпаны, а консенсус так и не найден был задан вопрос буквально следующий:

Насчет, уверенности моей уверенности в себе, поверьте моя самооценка не сильно пострадает если я окажусь неправ.

Ну ладно, ближе к телу. У меня есть один проект на дельфях.

Каждый год я получаю кучи писем, от рашшенских юзеров, на тему дай прогу бесплатно, я её поломаю. Как правило, это подкрепляеться, кучей приписок, о членстве в грозных хакерских организациях. Посему упоминание об асме, у меня почему то ассоциируеться в основном с такими товарищами.

 

Я уже давно зарекся работать в Росии, посему, может попробуете рассказазть, на чем написана, система защиты от взлома. И как асм мог помочь мне, сделать её лучше? Мне будет очень интересно, послушать человека который знает, асм на 4+.

На что по просшествии некоторого времени был дан ответ:

 

Нет, в 2 часа, конечно, не уложился, не хватило експеринса по риверсингу делфей. Делалось примерно так:

1. В IDA полный дизасм головного файла, процедуры подсчета CRC привязки к железу лежат сразу на виду, ч/з них вышел на процедуру key->CRC. Бегло осмотрев, решил, что риверсировать оную будет слишком накладно по времени и решил патчить. Первой мыслью было пропатчить саму эту процедуру, чтобы возвращала нужную CRC, но сделав так, пришлось бы перепатчивать exe для каждого нового компа, поэтому решил патчить процедуры подсчета CRC, - в них заменяются 2 команды XOR на MOV, т.е. вне зависимости от параметров компа процедуры возвращают одно и тоже CRC от числа 1234567890, значение CRC получается вашей же процедурой, смотрел его дебагером.

2. Патчим exe, получаем ексепшен, опять идем в IDA, и прогнав под дебагером сразу выходим на подсчет CRC exe-файла, смотрим откуда берется CRC и на ходу пишем небольшую программку подсчета CRC файла по вашему алгоритму (он опять же на виду) и записываем CRC в potdia.dat.

3. Запускаем exe – опять екцепшн, опять идем в IDA и видим еще один подсчет CRC, теперь уже по основным функциям проги, ну тут я особо не мудрствовал, Вы оставили в коде процедуру которая его сама считает и пишет в файл, ей и воспользовался, изменяю option.spr для моей чек-суммы, пишем в првые два двойных слова нули, в третье – то, что сохраняет ваша процедура, слова суммируются, поэтому сделал так.

4. Запускаем exe – тут у меня нервы сдали – опять эксепшн! Опять дебагер, замечу, что основной код шифрован в exe файле видно сразу, но я не придавал тому значения пока это мне не помешало, выясняется, что в шифрованном коде есть еще три процедуры подсчета CRC, ищу где код расшифровывается, вижу, что он сначала подгружается из option.dat, при чем сам файл шифрован по RC6, после чего вызывается процедура расшифровки. Я выбрал самый простой с моего взгляда путь. В дебагере налету расшифровываю Вашей же процедурой код и делаю дамп памяти. После чего опять патчу головной файл на предмет пропуска процедуры шифрования, и соответственно теперь кусок кода из файла грузится в основную программу уже не шифрованным. Естественно патчу option.dat в 3х местах на предмет возвращения процедурами нужного мне CRC.

5. Опять пересчитываю CRC головного файла и внутренних процедур, запускаем exe и вуаля – все работает.

6. Вот кажется и все, хотя может что-то и упустил.

 

З.Ы. Действительно, защита снята очень грубо но сравнительно быстро – рабочий день был убит. Есть еще по крайней мере один более изящный способ снятия этой защиты, вообще без патча проги и ее файлов, но для него требуется наличие одного легального ключа.

З.Ы.Ы. Главбух просит шоколадку за моральный ущерб – я вчера был до крайности не разговорчив

На этом, собственно все и кончилось.

 

Но, это собственно лирика, была еще одна дискусия.

Суть - есть крупный завод. Есть программа на делфях, работающая с БД. Программа самописная. Писалась по заказу и координаты человека потеряны. В БД критическая информация. После переустановки ОС вместо ожидаемой в отчетах кирилицы одни кракозябры. Флейм по поводу "да у вас неправильно кодовая страница в BDE настроена" и вообще BDE неправильный растянулся страниц на 8, и растянулся бы еще на столько же если бы не нашелся человек который запустил прогу под отладчиком и нашел баг, пропатчил екзешник. Оказалась кривая функция BDE (вот это кстати к слову о виртуальных машинах).

 

Было еще не одна ситуация где асм рулил.

Подитоживая скажу - лучше асм знать, нежели не знать. Но каждый инструмент имеет область своего применения. Ну вы меня поняли, да?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Но, это собственно лирика, была еще одна дискусия. Суть - есть крупный завод. Есть программа на делфях, работающая с БД. Программа самописная. Писалась по заказу и координаты человека потеряны.
А какой идиот допустил чтобы крупный завод работал на программе какого-то потерянного пионера?! Этого дебила надо поставить раком и поиметь всем заводом в извращенной форме без вазелина. И знание ассемблера здесь не нужно, а нужно лишь небольшое умение управлять проектами, так как такая фигня вообще не должна случаться.

 

Вообще я не понимаю людей пропагандирующих асм. Ладно мне пришлось его выучить, так как тогда других языков просто не было. Но сейчас то зачем? Где он сейчас может пригодиться? Назовите мне хоть один проект на асме. Windows/Linux kernel? Bios? И Вы думаете что Вас возьмут в эти проекты? Мания величия?

 

Чтобы поджарить мясо совсем не обязательно уметь пасти коров. Чтобы писать приложения прикладного уровня не обязательно знать ассемблер. Современные языки и компиляторы достаточно хорошо оптимизируют код, что помогает программисту сосредоточиться на логике приложения, а не на оптимизации алгоритмов. Ну, я не имею ввиду клинические случаи типа индусов, кстати там даже знание ассемблера не помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

зря вы так, дяденька, на асме не только ядра и биос пишут..

 

теперь по теме: чтобы прогать на жабе - не обязательно знать АСМ, чтобы прогать на пых-пыхе - не обязательно знать АСМ, тоже самое касается HTML/Flash/JavaScript. Каждый сам выбирает на чём прогать и что ему для этого необходимо знать. Навязывать я не стану - это глупо. Моё личное мнение - АСМ знать надо, но это мне так кажется, просто лично мне он нужен. Всевозможные мегавысокоуровневые языки тоже нужны, кудаже без них. Но опять же лично у меня, когда я пишу на том же шарпе, не гарят глаза так, как когда я пишу на Си или асме. Это философия, стиль жизни если хотите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Особенно зарплата, спрос, усилия. И ориентация зачастую может поменяться, хоть и в ущерб высоких идей. Вот так вот и я получаю свои 2 куе за 1С, вместо максимум тысячи за дельфы...

Почему это максимум тысячи? Я как раз две за дельфи и получаю... (разработка ERP-системы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скажите пожалуйста, какой из языков .net лучше учить? и в чём их разница между собой?

простите за глупый вопрос я просто "невтеме"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

скажите пожалуйста, какой из языков .net лучше учить? и в чём их разница между собой?

простите за глупый вопрос я просто "невтеме"

 

Лучше учить?.. Хм... лучше уиться програмированию, чтобы "быть в теме". Традиционно, начинающим на dotNet совутуют С++ -> C#, но можно и с шарпа начать. Советую кингу "Полный справочник по С#." (Герберт Шилдт / "Вильямс", 2004) - это не просто справочник, а больше учбник, даже для начинающих подойдет. Удачи. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

))))) я плакалъ

Вы не забывайте что для разных целей свои языки

Я лично изучаю HTML+CSS+PHP+MYSQL, и это для сайтостроения и веб дизайна.

Остальные языки - в целом для компа

помимо HTML+CSS+PHP+MYSQL есть еще javascript xml perl pythot

да будет известно html это язык гипер-текстовой разметки а не язык програмирования

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

помимо HTML+CSS+PHP+MYSQL есть еще javascript xml perl pythot

да будет известно html это язык гипер-текстовой разметки а не язык програмирования

 

Спорное утверждение. А что такое язык программирования?.. Ассемблер, язык программирования? Он, между прочим, в своем роде, язык "разметки" машинного кода... :)

 

P.S. Язык программирования отличается от естественных языков тем, что предназначен для описания и передачи данных и команд над ними от человека компьютеру.

Изменено пользователем RuForce

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще-то точно сказать какой язык лучше НЕЛЬЗЯ. Так как у каждого из них есть свои особенности, плюсы и минусы. Иногда проще сделать прогу на каком-то другом языке чем который вам больше нравится!!! А языки высокого и низкого уровня я считаю что сравниватьвообще нельзя.))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, давно не заходил в эту тему ;) Время шло, опыта прибавилось.

Могу сделать несколько, возможно, полезных или интересных высказываний :)

1. С++ опасен в неопытных руках. Он опасен даже в опытных, правда, намного меньше. Если человек не осознает разницу между стековым обьектом и обьектом в куче - С++ атомная бомба. Если человек не знает как происходит обработка исключений - С++ не атомная, но бомба :mellow: Если человек не знает что такое виртуальный метод - С++ арт снаряд. Этот список можно продолжать бесконечно. Незнание малейшей тонкости языка человеком, пишушим код на С++ , может обернуться совершенно непредсказуемым результатом при выполнеии строчки "i++;" Именно по этой причине совершенно точно не стоит начинать учиться программированию с С++. Может сложиться ложное впечатление что код написан верно, хотя на самом деле это будет не так.

2. В совершенно любом приложении, написанном на C++ Builder любой версии, есть хотя бы 2 критические ошибки - утечка памяти и пропуск участков кода, которые должны были быть исполнены.

3. Если вы разработчик нативных приложений (приложений выполняющихся напрямую процессором, без предварительных преобразований кода) - assembler нужно знать в любом случае. Если вы не знаете асм, вам никогда не стать профессионалом в отладке нативных приложений. При том, для создания прикладных приожений, ассемблер стал практически бесполезным.

4. .net дает мне свободу. Когда я пишу под него - только тогда я чувствую себя "хозяином компа". Мне приятно знать, что каждое действие, каждый вызов метода и инкремент переменной цикла безопасен. Оно не несет в себе опасности вызова неверного метода из-за ошибочного каста и получения неверного адреса таблицы виртуальных методов. Оно было многократно обдумано и протестировано за меня группой профессионалов. И если в нем и есть ошибка, то она не моя. Она будет найдена и исправлена. С# не исключает ошибок. На нем точно так же, как на любом языке, можно писать безобразный, бездарный код, приводящий к исключениям. Если требуется особая производительность необходимо знать тонкости, такие как боксинг\анбоксинг. Но при этом он останется безопасным.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, давно не заходил в эту тему :wub: Время шло, опыта прибавилось.

Могу сделать несколько, возможно, полезных или интересных высказываний :(

1. С++ опасен в неопытных руках. Он опасен даже в опытных... <...> .net дает мне свободу. Когда я пишу под него - только тогда я чувствую себя "хозяином компа". Мне приятно знать, что каждое действие, каждый вызов метода и инкремент переменной цикла безопасен. Оно не несет в себе опасности вызова неверного метода из-за ошибочного каста и получения неверного адреса таблицы виртуальных методов. Оно было многократно обдумано и протестировано за меня группой профессионалов. И если в нем и есть ошибка, то она не моя. Она будет найдена и исправлена. С# не исключает ошибок. На нем точно так же, как на любом языке, можно писать безобразный, бездарный код, приводящий к исключениям. Если требуется особая производительность необходимо знать тонкости, такие как боксинг\анбоксинг. Но при этом он останется безопасным.

 

Согласен! Поддерживаю. :wub:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас