Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Язык С, с чего начнём?  (Прочитано 6392 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Daynin

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
    • Google+
Re: Язык С, с чего начнём?
« Ответ #30 : 06 Июля 2012, 19:34:08 »
Хорошо исходя из этого, за что стоит браться С или же С++ ? (с точки зрения легкости освоения и понимания)
С точки зрения легкости лучше всего браться именно за Python. Вам там говорили, что на нем нельзя писать большие проекты. Это не правда. Во-первых, один вы все равно не напишите проект такого размера, чтобы вам не подходил Python, во-вторых вон люди операционную систему на Python пишут. Тем более, что если уж в вашем проекте появятся критичные к скорости места, то можно их на Си написать (но не на C++). Не зря ведь Canonical рекомендует на этом языке (на Python) разрабатывать под Ubuntu. C++, при всем моем уважении к нему, слишком монструозен и уж никак не подходит для изучения в качестве первого языка для разработки приложений. Лучше попробовать набраться опыта в других языках, а уже потом, при необходимости идти в C++. Конечно, для разработки GUI приложений на C++ есть замечательная библиотека QT, но ведь есть и PyQT для Python.

Так же достаточно легким для понимания языком может стать C#. Под Ubuntu на нем можно разрабатывать в Mono Develop.

В общем, вам решать. Но я бы ни в коем случае не стал бы начинать с C++. А Си для разработки приложений целиком - это overkill какой-то. Си хорош, но его лучше применять в системном программировании и в High-load системах.
« Последнее редактирование: 06 Июля 2012, 19:46:55 от Daynin »
Замечательный тут у вас форум! Много интересных людей.

Lifewalker

  • Гость
Re: Язык С, с чего начнём?
« Ответ #31 : 06 Июля 2012, 20:23:01 »
Ну вот сейчас снова приду я и начну свои песни про то, как плох и чертовски ущербно невнятен Си/Си++. Потом я спою про то, как хороши, красивы, понятены, человекочитаемы и всячески прелестны языки всего и вся из семейства Паскаля.

Изучать программирование как дисциплину нужно на Паскале, лучше на Модуле-2. Затем, переходить к изучению ООП (хоть в 95% случаев оно нафик не нужно) посредством Оберона-2.

А когда мозги встанут на место, их уже ни Си, ни Джава ни даже не к ночи упомянутый Перл не сломают. Как-то так я думаю.

Пользователь решил продолжить мысль 06 Июля 2012, 20:28:00:
Си хорош, но его лучше применять в системном программировании и в High-load системах.
Гы, свежо преданьице...

Системы писать на этом убожестве можно было, когда ЦПУ работали на 100 Кгц и памяти было 16 Кб. Сегодня на Си писать систему будет только мазохист или извращенец.

High-load по определению требуют хай стабилити, чего посредством Си можно добиться лишь невероятными усилиями.
« Последнее редактирование: 06 Июля 2012, 20:28:00 от Lifewalker »

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #32 : 06 Июля 2012, 21:41:38 »
А когда мозги встанут на место, их уже ни Си, ни Джава ни даже не к ночи упомянутый Перл не сломают. Как-то так я думаю.
...
Си хорош, но его лучше применять в системном программировании и в High-load системах.
Гы, свежо преданьице...

Системы писать на этом убожестве можно было, когда ЦПУ работали на 100 Кгц и памяти было 16 Кб. Сегодня на Си писать систему будет только мазохист или извращенец.

И хотелось бы с вами согласиться, в принципе, в теории (относительно Modula, Oberon, ...), но:

1. без куска хлеба по-миру пойдёт ;) - из тысяч разрабатываемых заказных проектов ну нет, нет ни одного оплачиваемого  на Modula, Oberon ...

2. мы треплемся на форуме Linux, а весь Linux прописан на С, и вынуждены вы будете писать в Linux на С, а уж если это драйвера, модули ядра ... то здесь может быть только и исключительно С.

3. в UNIX/Linux окружении программы (программирование) на PASCAL выглядит ... экзотично ... как парад гомиков среди берёзок средней полосы России ... ну а Modula/Oberon и тем более (с Oberon нужно работать в BlueBotle ... и жить в Цюрихе ;)).

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

Вообще-то, в природе нет более надёжной и живучей ОС чем QNX ... и её приложения.
И вся ОС прописана на C, и из средств разработки по-серьёзному есть только POSIX C.
Как это соотнести ... с "невероятными усилиями"?

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #33 : 06 Июля 2012, 21:57:31 »
Olej,
Цитировать
2. мы треплемся на форуме Linux, а весь Linux прописан на С, и вынуждены вы будете писать в Linux на С, а уж если это драйвера, модули ядра ... то здесь может быть только и исключительно С.
а как же Firefox? он же написан на С++
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Lifewalker

  • Гость
Re: Язык С, с чего начнём?
« Ответ #34 : 06 Июля 2012, 22:33:25 »
1. без куска хлеба по-миру пойдёт ;) - из тысяч разрабатываемых заказных проектов ну нет, нет ни одного оплачиваемого  на Modula, Oberon ...
Я ж особо подчеркнул - для изучения программирования как дисциплины. Слово дисциплина в данном случае отражает то самое что оно отражает - дисциплину ума и дисциплину знания.

Что до оплаты, это дело самого вопрошающего чем заниматься. Если хочет ПО для спутиков писать, то Модула в самую пору. Если хочет чего-то более хлебного, то ему в 1Сники нужно идти, там заказы и постоянный поток хлеба, масла и прочих (вкус)няшек ;) Если же хочет он изучать Си, то ... я не знаю даже. Разве что микроконтроллеры или ядро Linux писать, но не знаю как кореллируют в данном случае знания Си и деньги.

2. мы треплемся на форуме Linux, а весь Linux прописан на С, и вынуждены вы будете писать в Linux на С, а уж если это драйвера, модули ядра ... то здесь может быть только и исключительно С.
К сожалению, да.

3. в UNIX/Linux окружении программы (программирование) на PASCAL выглядит ... экзотично ... как парад гомиков среди берёзок средней полосы России ... ну а Modula/Oberon и тем более (с Oberon нужно работать в BlueBotle ... и жить в Цюрихе ;)).
Вообще не понимаю, что значит экзотично. Для меня например пределом экзотичности и бредовости являтеся Питон, я же не сравниваю его ... с ... ну вы понимаете с чем в каком месте.

Вообще-то, в природе нет более надёжной и живучей ОС чем QNX ... и её приложения.
И вся ОС прописана на C, и из средств разработки по-серьёзному есть только POSIX C.
Как это соотнести ... с "невероятными усилиями"?
Да так и соотнести. Сколько килодолларов стоит лицензия на один экземпляр QNX, какого она размера, сколько тыщ человеко-дней и седых волос было впихнуто в каждый байт этой системы. Вот так и считается соотнесение. И, кстати, ваше утверждение про надёжность и живучесть QNX принципиально не проверяемо, так что изначально аргумент так себе :)

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #35 : 06 Июля 2012, 23:25:44 »
Olej,
Цитировать
2. мы треплемся на форуме Linux, а весь Linux прописан на С, и вынуждены вы будете писать в Linux на С, а уж если это драйвера, модули ядра ... то здесь может быть только и исключительно С.
а как же Firefox? он же написан на С++
какой-то частный прикладной проект может быть написан на чём угодно, в тос числе и на С++.

а на счёт Mozilla (Firefox) - не верю, потому как, помниться, там использованы библиотеки APR (Apache Portable Runtime) и их реализация JavaScript, вокруг которой всё крутится, тоже С.

Оффлайн Nikki1993

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #36 : 06 Июля 2012, 23:44:55 »
Olej,
для меня остается 1 вопрос С или С++? мои планы на будущее это написание игр под Linux(Ubuntu), читал что С++ лучше всего на эту роль подходит, так ли это?
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

Оффлайн Daynin

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
    • Google+
Re: Язык С, с чего начнём?
« Ответ #37 : 06 Июля 2012, 23:48:00 »
Olej,
для меня остается 1 вопрос С или С++? мои планы на будущее это написание игр под Linux(Ubuntu), читал что С++ лучше всего на эту роль подходит, так ли это?
Да, для написания игр (под любые платформы) самый лучший язык - C++.
Замечательный тут у вас форум! Много интересных людей.

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #38 : 07 Июля 2012, 00:04:53 »
Если же хочет он изучать Си, то ... я не знаю даже. Разве что микроконтроллеры или ядро Linux писать, но не знаю как кореллируют в данном случае знания Си и деньги.

Ну почему "не знаю даже"? ;)
На С прописаны такие крупнейшие проекты как VoIP PBX (soft телефонные станции): Asterisk, FreeSWITCH ... по объёму кода соизмеримые, пожалуй, с ядром Linux Линуса Торвальдса...
И опять же, ещё один из крупнейших проектов PBX - YATE - прописан на С++ ... кому так больше нравится.

Да так и соотнести. Сколько килодолларов стоит лицензия на один экземпляр QNX, какого она размера, сколько тыщ человеко-дней и седых волос было впихнуто в каждый байт этой системы. Вот так и считается соотнесение. И, кстати, ваше утверждение про надёжность и живучесть QNX принципиально не проверяемо, так что изначально аргумент так себе :)

1. разработчик - небольшая канадская фирма QSSL ... правда за ними стоит программа теоретических проработок Массачусетского MIT относительно микроядра...

2. и как это "не проверяемо" - есть опубликованные отчёты и тесты признанного мирового тестера реалтайм систем Dedicated Sysems, есть практические проекты уже проработавшие по 14 лет в режиме 365*24, есть системы безопасности ядерных реакторов, и системы управления военными объектами (танк "Абрамс", F-16, ...) - куда там "винрдусям с линусями" ;) ... или даже Sun Solaris.

Всё только С.

Пользователь решил продолжить мысль 07 Июля 2012, 00:06:24:
для меня остается 1 вопрос С или С++? мои планы на будущее это написание игр под Linux(Ubuntu), читал что С++ лучше всего на эту роль подходит, так ли это?

в принципе, С++ подходящий инструмент для этой области ... если вы его станете изучать по книгам Б.Страуструпа (он единственный автор С++). ;)
« Последнее редактирование: 07 Июля 2012, 00:06:24 от Olej »

Lifewalker

  • Гость
Re: Язык С, с чего начнём?
« Ответ #39 : 07 Июля 2012, 10:41:04 »
Если уж принимать решение об использовании Си++, то нужно хоть как-то ввзвесить аргументы сторон. Почитайте вот эту славную крохотную заметочку на RSDN, познавательно :)

На С прописаны такие крупнейшие проекты как VoIP PBX (soft телефонные станции): Asterisk, FreeSWITCH ... по объёму кода соизмеримые, пожалуй, с ядром Linux Линуса Торвальдса...
И опять же, ещё один из крупнейших проектов PBX - YATE - прописан на С++ ... кому так больше нравится.
Понимаете ли, я же не против Си или Си++, я против использоваия этого кошмара в современных условиях. Топистартер начинает писать игру или что он там задумал, т.е. он может начать что-то с чистого листа. Пусть трижды или даже семижды подумает, есть ли смысл ввязываться изучение кошмарного языка и диктуемой им методики разработки.

Моя логика в отсоветывании Си предельно проста: чтобы написать хорошую малоглючную программу на Си/Си++ нужно приложить много усилий, но ещё больше усилий нужно приложить, чтобы написать плохую программу на Модуле :) Модула(Оберон) архитектурно и технологически предотвращают программиста от косяков, во всяком случае большей их части. Если человек понял дисциплину и методику (довольно строгую между прочим) программирования на Модуле, то даже после перехода на Си он будет вести себя осторожнее и результат будет получаться значительно лучше.

На Си действительно написано много чего, на Си++ тоже. Но в своё время индустрия паровозов и карет достигла невиданных высот и мастера этого дела ценились на вес золота. Где они сегодня?
« Последнее редактирование: 07 Июля 2012, 10:50:36 от Lifewalker »

Оффлайн Daynin

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
    • Google+
Re: Язык С, с чего начнём?
« Ответ #40 : 07 Июля 2012, 14:43:20 »
На Си действительно написано много чего, на Си++ тоже. Но в своё время индустрия паровозов и карет достигла невиданных высот и мастера этого дела ценились на вес золота. Где они сегодня?
Я полностью вас поддерживаю в попытках отговорить ТС от использования C++, но увы, в современном геймдеве именно он цветет и пахнет больше других. Вряд ли ТС заходит взять какой-нибудь современный язык и разработать для него фреймворк для создания игр, да насколько хороший, чтобы все побежали пользоваться именно им. Да, С++ уже изжил свой век во многих областях разработки ПО, но не в геймдеве. Единственная отличная альтернатива ему - это C# + XNA + Unity3D, но это только под виндой.

Уважаемый ТС, если вы хотите всю жизнь заниматься именно геймдевом, то выбирайте C++ (кстати, вряд ли этим получится заниматься для Linux, если вы конечно не будете делать это все в одиночку), если все же не исключена возможность работы в других направлениях, то даже не думайте его изучать. Попробуйте посмотреть на другие языки, я бы советовал Python, C# (Не бейте камнями, на мой взгляд, это хороший пример современного языка), Go, Ruby(веб). Можно попробовать изучать мультипарадигмальные языки с упором на функциональную парадигму (она сейчас набирает популярность), такие как Scala, F#, Kotlin(он еще не зарелизился).

В общем, выбор есть всегда, и чтобы вам тут не советовали, прислушайтесь именно к себе ведь, если вам очень хочется учить C++, то, возможно, вы никогда не будете обращать внимание на его недостатки, создавая при этом чудесные программные решения, и наоборот, выбрав язык по чьему-либо совету и попробовав его, раз и на всегда закроете для себя тему программирования.
Замечательный тут у вас форум! Много интересных людей.

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #41 : 07 Июля 2012, 14:53:22 »
скажите мне область где изжил себя С++ в чем изжил? Или вы считаете что выбор языка избавляет от быдлокодерства? Единственный минус С++ это сложность его работы с памятью и необходимостью следить что и как выделяется и что где надо подчистить, но даже пресловутый C# и Java имея сборщики свои не избавляют от той же утечки памяти, вот и получается что вроде как уже и не минус так как следить за памятью надо везде, если вы хотите грамотно писать на любом языке....
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн Daynin

  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
    • Google+
Re: Язык С, с чего начнём?
« Ответ #42 : 07 Июля 2012, 15:15:10 »
скажите мне область где изжил себя С++ в чем изжил? Или вы считаете что выбор языка избавляет от быдлокодерства? Единственный минус С++ это сложность его работы с памятью и необходимостью следить что и как выделяется и что где надо подчистить, но даже пресловутый C# и Java имея сборщики свои не избавляют от той же утечки памяти, вот и получается что вроде как уже и не минус так как следить за памятью надо везде, если вы хотите грамотно писать на любом языке....
Безусловно, ни один язык не избавит от быдлокодерства, но это же не повод все писать на ассемблере? Языки развиваются (их синтаксис, их best practices и так далее), и от этого никуда не уйти. C++ изжил себя даже не из-за возраста, а из-за желания впитать в свой синтаксис все. Конечно, найдутся защитники языка, которые и синтаксис его будут считать самым правильным, а все его недостатки будут списывать на кривость рук. Но такие защитники найдутся для любого языка.

Невозможно создать язык, который бы вообще не давал программисту написать код с утечками памяти, но языки, которые бы помогали в большинстве случаев избежать их уже есть, почему бы ими не пользоваться?
P.S.
Кстати, Линус Торвальдс ненавидит С++ и призывает пользоваться Си :)
Замечательный тут у вас форум! Много интересных людей.

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #43 : 07 Июля 2012, 15:28:10 »
Кстати, Линус Торвальдс ненавидит С++ и призывает пользоваться Си :)
он много чего ненавидит, он не Бог и не судья, а всего лишь человек, пусть и авторитетный, у которого есть свои пристрастии и свои взгляды на тот или иной вопрос.


C++ изжил себя даже не из-за возраста, а из-за желания впитать в свой синтаксис все.
С++ развивается не хуже других, на его синтаксисе основа тот же C# и Java, и говорить что он изжил себя только потому что вам не нравится его синтаксис это глупо и не правильно, вы считаете синтаксис Python c его зависимостью к отступам более лаконичным и правильным? Я так не считаю например....

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

Все эти  языки (C# и Java) достаточно медлительны и неповоротливы для использования в более ли менее зависимых от скорости работы приложениях, но это уже  все скатывается к холивару, если бы язык изжил себя он бы не оставался бы столь популярен на протяжении не одного десятка лет, Python это мода которая со временем уйдет ....
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн SergeyIT

  • Зануда.
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5743
  • Все по палатам!
    • Просмотр профиля
Re: Язык С, с чего начнём?
« Ответ #44 : 07 Июля 2012, 15:33:13 »
Что то все скатывается к холиварам...
А начинать надо всегда с постановки задачи (это никогда не подводило). :P
Извините, я все еще учусь

 

Страница сгенерирована за 0.023 секунд. Запросов: 21.