Илья ([info]i1ey) wrote,
@ 2009-04-16 10:32:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Почему мне не нравится C++
Из всех языков программирования я выделяю для себя две группы: действительно низкоуровневые языки - разного рода ассемблеры, С, С--, Паскаль и действительно высокоуровневые - Lisp, Haskell, Smalltalk, Ruby и т.д.

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

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

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

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


Advertisement


(Read 12 comments)

Post a comment in response:

From:
( )Anonymous - this user has disabled anonymous posting.
( )OpenID Help
Username:
Password:
Don't have an account? Create one now.
Subject:
No HTML allowed in subject
   Help
Message:
 
Notice! This user has turned on the option that logs your IP address when posting. Help
Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…