Saturday, March 3, 2012

ксюше-2


вопрос: Чем С отличается от С++?

один из ответов по Google:

The C programming language is a very general purpose programming language. It is used to solve problems ranging from operating system kernels, over compilers to graphical user interfaces. C was conceived in the early 1970s by Dennis M. Ritchie. The C programming language was first standardized in the mid 1980s.
The C++ programming language was initially created by Bjarne Stroustrup, as a "better C". C++ was an attempt to extend and (to some extent) change the C programming language to overcome some of the common and big problems with the language. C++ was first standardized in 1998, and as such, is a much younger language than C.



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

То есть, чтобы быть действительно продвинутым программистом на уровне уже скорее научно-исследовательской работы, их знать надо обязательно. Но в таких специалистах потребность всегда исчисляется и будет исчисляться всего лишь единицами. Хотя 20 лет назад программистов без знания С или С++ практически не было. Но не стоит забывать, что и самих программистов было не так уж много.

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

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

Например, давешнюю програмку по определению оптимального веса, на С++ ты бы писала ДНИ. А в среде .Net на языке Visual Basic все было бы готово за час.

Помимо своего уровня языки отличаются еще и заточенностью под какие-то конкретные задачи. Именно поэтому языков всегда так много. Очень много разных - именно РАЗНЫХ задач. И люди создают новый язык, в котором какие-то области вообще сокращены или даже пропущены, зато другие очень развернуты и детализированы. Скажем, как в языке эскимосов десятки слов для обозначения разных видов снега, но вообще нет слов для обозначения сортов клубники. (Хотя, множество слов для обозначения снега - это сказка.)
Еще пример для визуализации многочисленности языков высокого уровня из-за их заточенности под конкретные задачи: на севере Канады дома строят из деревянных панелей, а на юге - из фанерных. 

И в заключение.

На сегодня существует два самых мощных мейнстрима в развитии языков вообще.
Определяются они больше финансовыми возможностями тех, кто ими владеет.
Это платформа, которую можно условно назвать Java, и другая платформа, которую можно условно назвать .Net (Microsoft) (дот-нэт).

Эти два направления вкладывают деньги в добавление себе всего нового и перспективного, что создается в отдельных специфических языках. Более того, развитие этих двух направлений неизбежно сближается, и рано или поздно они сольются.  

Вопрос будет только в том, кто из них кого купит.


Вот примерно так на сегодня картина с языками в целом видится мне.




1 comment:

Anonymous said...

Спасибо))