LINUX.ORG.RU
ФорумTalks

[c] [c++] [c#] Тенденция, однако

 ,


0

1

Почему все сейчас отказались от чистого Си? Почему все ломанулись в это объектно-ориентированное программирование? Даже простейшие программы пишут с использованием ООП. Почему не существует IDE для Си уровня проприетарной Visual Studio? Получается замкнутый круг. С одной стороны, на Си не пишут, потому что для него нет крутых «интырпрайзных» IDE. С другой стороны, разработчики тех самых IDE не спешат поддерживать Си. Пустую форму с кнопкой, при нажатии на которую выскакивает «Hello, world!», быстрее наклепать на C++. Но это ведь преимущества IDE, а не языка, да?

Ассемблер неплох, но не переносим. Си уровнем чуть повыше, на этом уровне уже достигается переносимость. Зачем подниматься выше? Зачем тащить за собой ООП, как гроб? Я признаЮ, что есть вещи, где ООП позарез нужно, но ведь нужно оно не всегда.

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

В чем секрет популярности коммерческих продуктов? Когда продукт перестает быть конкурентноспособным, менеджеры придумывают фичу - как правило, очередной уровень абстракции, скрывающий реализацию чего-либо, или «прогрессивный» интерфейс типа M$ Ribbon - и агрессивно продвигают эту фичу как современный стандарт. Посмотрите на БД Oracle: объемные SQL-запросы, раздутые на два экрана. Сейчас интенсивное развитие многих продуктов завершилось. Тот же M$ Office 2003 по функциональности почти равен 2010-му. Если скаммерсанты не будут придумывать очередные риббоны, дотнеты и прочее, то люди перестанут покупать новые версии. Главный недостаток такого подхода - раздувание программного обеспечения.

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

Ответ на: комментарий от ns_ramesses

Ты думаешь все выбирают ООП из-за IDE?

Си - для Ъ, для него никогда не будет IDE

luke ★★★★★
()
Ответ на: комментарий от tailgunner

>При том, что обе IDE сейчас являются каменным веком.

И ?


Ога. Только это «долгое время» началось лет 20 назад и закончилось когда, лет 15 уже? %)


И это что-то отменяет ?

В курсе от чего создаются новые языки и новые IDE ? :)

sS ★★★★★
()
Ответ на: /r от fedor

Учебник.

fedor
()
Ответ на: комментарий от sS

>> При том, что обе IDE сейчас являются каменным веком.

И ?

И упоминать их как «IDE для Си» следует с приставкой «сильно устаревшие».

Ога. Только это «долгое время» началось лет 20 назад и закончилось когда, лет 15 уже? %)

И это что-то отменяет ?

О, настолько многое, чтьо я даже не стану перечислять.

В курсе от чего создаются новые языки и новые IDE ? :)

«От чего» - не в курсе. «Почему» - это заговор, очевидно же.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>> В курсе от чего создаются новые языки и новые IDE ? :)

«От чего» - не в курсе. «Почему» - это заговор, очевидно же.


Ты просто за деревьями леса не видишь :)

hint: за 20 лет ресурсы компов выросли в страшное количество раз а возможность мозга программиста осталась примерно на том же уровне что и 10 000 лет назад :)

ЯП это всего лишь интерфейс между программером и задачей - задачи растут пропорционально толщине железа а вот у программиста ничего нового не «отрастает» - по этому и нужны костыли в виде новых ЯП и новых IDE :)

sS ★★★★★
()
Ответ на: комментарий от sS

>> «От чего» - не в курсе. «Почему» - это заговор, очевидно же.

Ты просто за деревьями леса не видишь :)

Кхм. Это была ирония, вообще-то. Понятно, что новые языки создаются, когда становится выгодным отдать на порядок больше ресурсов компьютера за повышение производительности прогера в 2 раза. И я лично не считаю это костылями.

Да, я знаю, что языки разрабатываются не только по этой причине (см. Haskell и C#).

tailgunner ★★★★★
()

С наше все. И да, GTK+ на С пишется. И на петоне. Но С наше все.

Zhbert ★★★★★
()
Ответ на: комментарий от Quasar

shty> ну что ж так палиться-то? :) на каком классе задач?

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

ну не только, но всё же, согласитесь что не сравнить с Вашим первоначальным:

Python несоизмеримо лучше, чем C++.

shty ★★★★★
()
Ответ на: комментарий от Quasar

shty> man android ndk

Ты этот NDK хоть раз видел? Ты в курсе, что он работает через жабу? ;)

да, что-то я лучше про «ондроед» думал :)

я только не понимаю зачем вообще NDK тогда?

shty ★★★★★
()
Ответ на: комментарий от shty

> да, что-то я лучше про «ондроед» думал :)

ты сначала распроси Quasar, что такое в его понимании С и С++ «через жабу», а то люди вон игры портируют, на Qt пишут, консольные приложения собирают, а оно вон как - «через жабу»

aho
()
Ответ на: комментарий от ns_ramesses

Я и в жизни такой - отбрасываю все лишние сущности.

Вы слишком самонадеяны :)

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

а ещё Вы набрались умных слов, но их смысл порой от Вас ускользает, ну и, максимализм, конечно из Вас потоком

shty ★★★★★
()
Ответ на: комментарий от aho

> да, что-то я лучше про «ондроед» думал :)

ты сначала распроси Quasar, что такое в его понимании С и С++ «через жабу», а то люди вон игры портируют, на Qt пишут, консольные приложения собирают, а оно вон как - «через жабу»

зачем мне у него спрашивать, я посмотрел на сайте

The Android NDK is a companion tool to the Android SDK that lets you build performance-critical portions of your apps in native code. It provides headers and libraries that allow you to build activities, handle user input, use hardware sensors, access application resources, and more, when programming in C or C++. If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device. The fundamental Android application model does not change.

shty ★★★★★
()
Ответ на: комментарий от shty

> зачем мне у него спрашивать, я посмотрел на сайте

да - для гуевых программ надо писать обертку на Java, это как бы очевидно, но не более того - это все-равно, что сказать, что Java работает через C

aho
()
Ответ на: комментарий от ns_ramesses

А кто вообще мешает на «++IDE» писать в стиле С ? Что значит нет IDE? Хочешь - пиши в той же VS , там даже в настройках проекта можно выбрать С или С++

Loki13 ★★★★★
()
Ответ на: комментарий от sS

за 20 лет ресурсы компов выросли в страшное количество раз а возможность мозга программиста осталась примерно на том же уровне что и 10 000 лет назад :

OMG, вот это тупняк, 10000 лет тому назад никаких программистов не было, соответственно некорректно производить сравнивнения мозгов программистов на данном временном интервале

shty ★★★★★
()
Ответ на: комментарий от aho

> зачем мне у него спрашивать, я посмотрел на сайте

да - для гуевых программ надо писать обертку на Java, это как бы очевидно, но не более того - это все-равно, что сказать, что Java работает через C

хме, мне кажется там несколько более строгие ограничения:

. If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device.

зачем писать нативный код, если он всё равно исполняется в VM? профита никакого (скорость та же), только что синтаксис знакомый...

shty ★★★★★
()
Ответ на: комментарий от aho

> 10000 лет тому назад никаких программистов не было

это точные сведения?

опровергни, если сможешь :)

shty ★★★★★
()
Ответ на: комментарий от shty

> зачем писать нативный код, если он всё равно исполняется в VM? профита никакого (скорость та же), только что синтаксис знакомый...

запускаю самосборные примеры на С++ - вижу процессы в htop, так что это не VM

aho
()
Ответ на: комментарий от shty

>зачем писать нативный код, если он всё равно исполняется в VM? профита никакого (скорость та же), только что синтаксис знакомый...

Нативный код исполняется нативно. Просто вызывается из жабы.

Yareg ★★★
()
Ответ на: комментарий от shty

>4.2 vim, eclipse+pydev, netbeans

Vim может ей стать, но к нему надо немалое время привыкать, да и допиливать

Пробовал вторую связку, автокомплит там эээ... не на уровне скажем так, netbeans возможно, но то же не без греха

pylin ★★★★★
()
Ответ на: комментарий от aho

Ну как бы и обычные андроидные приложения

runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then shuts down the process when it's no longer needed or when the system must recover memory for other applications.

Yareg ★★★
()
Ответ на: комментарий от aho

> опровергни, если сможешь :)

не-не, это ты утверждал ;)

утверждал, уточню свою позицию - до сих пор всяким специалистами по древностям всяким не удалось найти доказательств наличия чего-либо такого, но т.к. отсутствие чего-либо не есть доказательство, доказать на 100% я это не могу, поэтому я предагаю Вам пойти по альтернативной ветке :)

shty ★★★★★
()
Ответ на: комментарий от ns_ramesses

>M$ VS при всей ее рабской проприетарности - ненормальная IDE?

Ну вобще не про нее речь шла, а про тезис: даешь С свой IDE и он захавает мир

pylin ★★★★★
()
Ответ на: комментарий от aho

> зачем писать нативный код, если он всё равно исполняется в VM? профита никакого (скорость та же), только что синтаксис знакомый...

запускаю самосборные примеры на С++ - вижу процессы в htop, так что это не VM

то есть вот тут врут?

If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device.

shty ★★★★★
()
Ответ на: комментарий от shty

> то есть вот тут врут?

я ж написал - нужна обертка на Java, и запаковать надо как обычное приложение, но это ж очевидно

aho
()
Ответ на: комментарий от shty

Приложение работает в виртуальной машине и вызывает функции из нативной библиотеки, всё правильно написано.

Yareg ★★★
()

Уже четвертая страница про С++, а лиспотроллей все еще нет. Да, суббота, опустошают свои подвальчики с коллекционым винцом-с.

zfsed
()
Ответ на: комментарий от shty

>зачем писать нативный код, если он всё равно исполняется в VM

Поциэнт - вы либо больны либо никогда не видели девайсов на андроиде :)



sS ★★★★★
()
Ответ на: комментарий от sS

Вы лучше скажите что такое по Вашему «возможность мозга программиста» и как Вы собрались мерять это у человека жившего 10.000 лет назад

shty ★★★★★
()
Ответ на: комментарий от zfsed

> а лиспотроллей все еще нет

mv «ушли» с ЛОРа, архимаг не тролль и относится к С++ лояльно, love5an - судя по всему повзрослел и перестал писать чушь, остальные - так, мелочь, даже ТС интересней троллит

aho
()
Ответ на: комментарий от pylin

Vim может ей стать, но к нему надо немалое время привыкать, да и допиливать

и что Вы там собрались «допиливать»?

Пробовал вторую связку, автокомплит там эээ...

нормальный там комплит

shty ★★★★★
()
Ответ на: комментарий от aho

love5an - судя по всему повзрослел и перестал писать чушь

щас, его просто забанили, так что теперь он матюкается из-под анонимуса

shty ★★★★★
()
Ответ на: комментарий от shty

Характеристики человеческого мозга, по данным антропологов, не изменились за последние 10 000 лет - хотя глядя на ваши вы^Wкоментарии и у меня появились сомнения (:

sS ★★★★★
()

Ну можно было бы использовать C, но у него есть некоторые недостатки, которые не так уж легко исправить.

Незащищенность операций с указателем.

Отсутствие проверки типов при статическом/динамическом связывании процедур.

Ошибки связанные с использованием кучи.

Отсутствие runtime оптимизации кода.

Костыльный механизм макроподстановок.

sign
()

Меня всегда интересовала одна вещь, Google наиболее адекватная компания по целевому использованию ЯП. Они действительно выбрали лучшие языки для всех ниш и спользуют их в правильном соотношении. Бизнес-логика попроще - Python, посложнее - Java, выскопроизводительные сетевые технологии - C и С++. Очень удачно, ощущается что нет неадекватов как многие на ЛОРе, которые орут и пихают один любимый ЯП во все щели и умничают, что проверенные продакшном решения - говно.

vertexua ★★★★★
()

Прозреваю product placement риббонов.

queen3 ★★★★★
()
Ответ на: комментарий от Yareg

>А как по-другому? Activity же должно быть создано.

Для консольного приложения Activity не нужно вообще (если запускать их например через adb консоль) ну и рисование напрямую в фреймбуфер никто не отменял :) На youtub-e - было видео как mplayer выводит видео прямо поверх андроидной графики

sS ★★★★★
()
Ответ на: комментарий от ns_ramesses

> То же, например, что проприетарная Delphi дает объектному паскалю или проприетарная M$ VS дает сям++.

Что именно ? Редактор GUI ? Этого С в принципе не нужно, т.к. использовать С для формошлёпства сегодня как минимум неразумно. Множество библиотек в комплекте ? С этим проблем нет - всё основное есть в пакетном менеджере, а прикрутить недостающее дело нескольких секунд.

Пруфлинк?

Ок, постараюсь найти.

runtime ★★★★
()
Ответ на: комментарий от vertexua

Так какая вещь тебя интересовала, говоришь? Обосрать сферического неадеквата в вакууме и подчеркнуть этим собственную адекватность? %)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Просто порекомендовал обратить внимание что умные дяди делают, а не орать пихать какой-то один ЯП на все случаи жизни. Вот яркий пример, вперде писать на С корпоративные распределенные системы с бизнес логикой, кучей сущностей, связей, отправкой этих сущностей по сети и сохранением их в базе, навороченым гуем и безопасностью серверных приложений. Причем человек предлагает сделать серьезную IDE, как будто это поможет С в этом деле.

vertexua ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.