Имя: Пароль:
IT
 
Различия диалектов Си и С-подобных языков - C++, C# и т.д.
0 Vladal
 
04.01.16
11:30
Ребята. Ребенку надо объяснить, в чем основные различия между языками семейства Си. Какой из них где используется и какие у них перспективы - какой и где использщуется, например, Objective C - на платформе эпла, у сред для программирования микроконтроллеров свой диалект С или С-подобные языки и т.д.

Да и самому стало интересно, что ж это дети сейчас учат то, что папа сам не знает.
37 Mikeware
 
04.01.16
13:55
(36) дейкстра же говорил вроде, что начинать учить программированию нажо с функциональщины, и императивное любой дурак освоит :-)
38 quest
 
04.01.16
13:57
(36) Извращение это С++ ребенку предлагать (питон и прочие руби тоже сюда же отностятся) Нормальный язык должен четко различать время компиляции и выполнения. Ну и так же давать нормальную систему макросов. Что бы не надо было извращаться с построением dsl.
39 strange2007
 
04.01.16
13:58
(35) Конечно индивидуальный характер, но есть и общий момент: чем младше человек, тем быстрее нужен результат. Грубо говоря 2-х летний человечек воспринимает кубики, т.к. из них быстро можно что-то сложить. Да и в 12 лет почти никто из детей не сможет написать складскую прогу. В общем аккуратней надо с этим быть.
Это на моделировании проблему поднимали. Мол, детёныш лет 12-ти, хватается за изготовление сложного планера самолёта. Всё у него получается идеально и очень быстро. Но вдруг он через месяц всё бросает и вообще уходит из кружка. Причина тому то, что описал выше. Руководитель теперь всем подрят не даёт сложные, хоть и интересные, задачи
40 quest
 
04.01.16
13:58
(37) Он не так уж был не прав.
41 ДенисЧ
 
04.01.16
13:59
(37) А можно ссылочку на цитату Дийкстры, который всегда был апологетом процедурщины?
42 quest
 
04.01.16
14:01
(41) http://habrahabr.ru/company/hexlet/blog/248921/
Расскаялся в конце жизни.
43 Asmody
 
04.01.16
14:02
(37) Дейкстре бы самому на ночь "Learn You a Haskell for Great Good!" вместо страшной сказки почитать…
44 quest
 
04.01.16
14:04
(43) нормальная книга. Плюс (что ни говори) сообщество у хаскеля намного дружелюбнее чем С++ или даже 1С
45 Garykom
 
гуру
04.01.16
14:07
(44) сообщество у хаскеля? это примерно как полтора землекопа?
46 strange2007
 
04.01.16
14:08
Кстати, простенькие игрушки прикольно делать на Pure Basic-е. Сравнительно быстро и функционально получается, т.к. там много готовых огромных кусков присутствует.
47 Mikeware
 
04.01.16
14:11
48 Mikeware
 
04.01.16
14:12
(43) злой ты. купи себе велосипед.
49 Asmody
 
04.01.16
14:16
(46) Сейчас брат придет, я у него спрошу на чем у них там в мейлру модно игрушки писать.
50 strange2007
 
04.01.16
14:18
(49) Это уже взрослые игры и под браузер. Я то имел в виду простенькие стрелялки-бегалки. 2-х мерные, 3-х мерные. Там просто крайне просто всё делается. Пару команд и звук прикручен, с десяток строк и 2-х мерная графика уже есть. Просто всё очень доступно как раз начинающим программистам.
51 Garykom
 
гуру
04.01.16
14:22
(50) http://habrahabr.ru/post/136802/

на java не намного сложнее зато сразу для смартфонов
52 strange2007
 
04.01.16
14:24
(51) Начинающим нужен быстрый результат, чтобы получить удовлетворение и стимул двигаться дальше. Например, на пурике кода в пару экранов и получаем целый 3-х мерный мир с домом, растениями, где можно бродить. Дети офигивают от такой простоты
53 Garykom
 
гуру
04.01.16
14:26
(52) ну их дофига, для обучения с полного 0 https://ru.wikipedia.org/wiki/Colobot идеален

от него легко к С, Java и прочим подобным типа Arduino перейти
54 strange2007
 
04.01.16
14:28
(53) Да я ж не спорю)))) Просто поделился личным опытом. К тому же пурик практически идеален для ассемблеристов, т.к. просто предоставляет ассемблерный код, собранный в кучки
55 Serginio1
 
04.01.16
14:29
(33) Манагед среды это сборщик мусора, а она в JS есть
https://learn.javascript.ru/memory-management
56 Garykom
 
гуру
04.01.16
14:30
(54) C(С++) и Java в будущем будут намного полезнее
57 Vladal
 
04.01.16
14:38
(29) Вполне себе... Визуально блок функции расчета остатков из УправлениОстатками содержит процедуру обработки табличной части из Общего модуля. Вот тебе один блочок, допустим, красного цвета, содержит в себе блочок серого цвета (модуль ОбщегоНазначения) и т.д.
Чемне визуализация текста модуля. Кстати, идея для извращения - написатьнекий такой визуализатор.

(32) Да, я тоже столкнулся с ожиданием быстрого результата.
58 Vladal
 
04.01.16
14:41
(49) А заодно спроси, по каким шаблонами они их делают - большинство игрушек однояйцевые близнецы в различных шкурках. А вот запилить паровозики типа досовых ShortLine или виндовых AIT Trains не хотят.
59 quest
 
04.01.16
14:41
(57) чем тебе такая визуализация поможет?
60 Mikeware
 
04.01.16
14:44
(57) а содержимое модулей-то само "накрасится" у красных модулей, и "насерится" у серых?
61 Vladal
 
04.01.16
14:45
(53) Колобот лет 5-6 назад я положил в заметки на будущее и сам забыл про него.
(46) Тоже взял на заметку.
(59) Есть же парсер запросов который выводит подзапросы в виде блоков и рисует между ними соединения. Легко посмотреть структуру большого запроса.
(60) В парсере - да как угодно.
62 Vladal
 
04.01.16
14:46
(60) Можно вообще блоками-кирпичиками нарисовать связь - эта процедура использует блоки таких-то модулей, а эта не использует внешние связи.
63 Mikeware
 
04.01.16
14:47
(61)ну так парсер разбирает уже написанное. а вот рисовать сложные запросы конструктором - медленнее.
64 Mikeware
 
04.01.16
14:47
(62) а блоки-кирпичики тебе пушкин писать будет? или айвазовский рисовать?
65 Serginio1
 
04.01.16
14:48
(53) Для мобильников сильно урезанный Java идет, в отличите от .Net. Раньше Compact FrameWork был очень далек от взрослого, что приводило к огромным неудобствам. Сейчас благодаря универсальной платформе Windows и единому ядру Windows одно и то же приложение можно запускать на любом устройстве Windows 10 — от телефонов и до настольных компьютеров.Используйте Visual Studio 2015 с универсальными средствами разработки приложений Windows для создания этих приложений.
https://msdn.microsoft.com/ru-ru/library/dn975273.aspx
66 quest
 
04.01.16
14:50
(62) ну только не в контексте конфигуратора такое возможно. Плюс вся эта идея - типа рисования кода - чушь.
67 Vladal
 
04.01.16
14:50
(64) А кто же еще? О_о
(66) Это же идея, но меня за неё уже расстреляли.
68 vcv
 
04.01.16
14:55
(19) "почему си++ не удачный проект ?"
Читал когда-то. Мнение Страуструпа о том, что фактическая реализация ООП в С++ получилась далека от того, о чем он мечтал и не очень-то ему нравится.
69 strange2007
 
04.01.16
14:56
Вот приколюха, сделанная одним детёнышем за пару часов на пурике. Суммарно там меньше 100 строк (не считал сколько точно, но с комментариями и пробелами 138 строк получилось)
https://cloud.mail.ru/public/AXBH/Liqc58gGz
70 Vladal
 
04.01.16
14:57
(69) Гляну дома, на работе нихт.
71 Mikeware
 
04.01.16
14:59
(67) Просто в свое время эта идея считалась попыткой решить проблемы производительности программистов. Но получилось не так уж и хорошо.
Есть некоторые попытки использовать визуальщину в программировании МК, но результаты более чем смешные...
72 strange2007
 
04.01.16
14:59
+(69) Только предупреждение: антивирусы иногда на такие сборки матерятся изо всех сил. Любые ассемблерные проги, ни один антивирус не любит(((( Но уверяю, тамошний код чист как слеза, без всяких намёков на вирусность.
73 orefkov
 
04.01.16
15:08
(68)
То, что получилось не совсем то, что Страуструп хотел - еще не значит, что "получилось неудачно". Старенький С++ конечно, не всегда был айс, а вот нынешнего, С++14 розлива - очень даже вкусно уже работать. Теперь уже даже STL вполне пристойно пользоваться стало, и в нынешних своих проектах только ею и стараюсь пользоваться. Хотя по string - не совсем еще доволен, и пользуюсь своими велосипедами.
74 ДенисЧ
 
04.01.16
15:21
Помнится мне...
Когда только начинал изучать stdlib (97-98) год...
Сделал программку на своих классах - 80КБ. подключил stdlib (или boost, не помню, что тогда в VC6 шло по дефолту) - файлик слегка вырос. До 1.6 МБ...
Я подумал и решил, что мне такое счастье нафиг не надо...
75 Mikeware
 
04.01.16
15:29
(74) так-то оно так.
только писать содержимое стдлиб самому - дольше...
вся жизнь борьба-бобра-с-ослом
76 Злопчинский
 
04.01.16
15:37
По мне - чем бы ребенок не занимался - жто полюбасику польза
Мозги у молодых незамктненные, гибкие - схватывают все быстро
Может и не пойдет кудато внлубь но расширение кругозора и смежные области будут задействованы - это я считаю хорошо.
По всякому это лучше чем по подъездам шататься пивняк жрать и клей нюхать.
А при правильном подходе со стороны родителей-взрослых - жфект несомненно полезный будет. Киндер у мну лет с 14 уже сам себе карманные деньги зараьатывал, у жены на работе до сих пор простенькая складская вебпрога крутится - работают до сих пор на ней.

Одно не сильно зорошо.
Есть у меня подозрения что технари не продвигаются по жизни стол. Удачно как гуманитраии но злесь могу ошибаться
77 Музон Хиггса
 
04.01.16
16:12
К С-подобным, можно отнести только C, C++ и Objective C. Всё остальное из другой оперы.
78 Это_mike
 
04.01.16
16:21
(76) "большие деньги можно заработать только чужими руками". Технари больше зарабатывают своими, а отдельные гуманитарии - чужими.
79 Sserj
 
04.01.16
16:49
(65) Вот не надо только словоблудить
:)
Сравнивать javaME с требованиями к устройству в буквально несколько сотен килобайт памяти и .net работающую прилично только на гигабайтах памяти. Что уж тогда с net compact не сравниваешь.
80 Serginio1
 
04.01.16
17:07
(79) Я говорю о том, что есть. А

Смотри
https://msdn.microsoft.com/ru-ru/library/dn975273.aspx

По твоему в WinPhone 10 может работать на 0.5 гигабайтах памяти?

http://habrahabr.ru/company/microsoft/blog/245901/

Windows Store и Windows Phone

Обе платформы Windows Store 8.1 и Windows Phone 8.1 – это достаточно небольшие подмножества .NET Framework. Однако, они также являются подмножеством .NET Core. Это позволяет нам в дальнейшем использовать .NET Core как основу для реализации обеих этих платформ. Так что, если вы разрабатываете для этих платформ, вы можете напрямую использовать все инновации не дожидаясь обновления фреймворка.

Это также означает, что количество BCL API, доступных для обеих платформ, будет идентично тому, что вы сегодня можете видеть в ASP.NET 5. К примеру, это включает необобщенные коллекции. Это позволит вам намного проще переносить существующий код, работающий поверх .NET Framework на приложения для сенсорных устройств.

Другой очевидный эффект заключается BCL API в Windows Store и Windows Phone полностью совместимы и будут оставаться такими, так как обе платформы .NET основываются на .NET Core.


Общий код для .NET Core и других .NET платформ

Так как .NET Core формирует основу для всех будущих .NET-платформ, возможность использования общего кода между платформами, базирующимися на .NET, уже заложена в них.

Тем не менее остается вопрос, как использование общего кода работает с платформами, которые не базируются на .NET Core, например, с .NET Framework. Ответ такой: также как и сегодня, вы можете продолжить использовать переносимы библиотеки классов и общие проекты:
•Переносимые библиотеки классов прекрасно подходят, когда ваш общий код не завязан на платформу, а также для повторного использования библиотек, в которых платформо-специфичный код декомпозирован.
•Общие проекты хорошо использовать, когда ваш общий код содержит немного платформо-специфичного кода, так как вы можете адаптировать его, используя #if.


Более детально выбор между двумя подходами описан в статье «Sharing code across platforms».

В дальнейшем переносимые библиотеки классов также будут поддерживать нацеливание на платформы, основанные на .NET Core. Единственная разница заключается в том, что если вы нацелены только на платформы с .NET Core, то вы не ограничены фиксированным набором API. Вместо это, вы будете завязаны на NuGet-пакеты, которые вы сможете обновлять по желанию.

Если вы добавите хотя бы одну платформу, которая не базируется на .NET Core, вы будете ограничены списком API, которые являются общими с ней. В этом режиме вы по-прежнему сможете обновлять NuGet-пакеты, но при этом вы можете получить требование выбрать более высокую версию платформы или полностью потерять их поддержку.

Такой подход позволяет сосуществовать двум мирам, получая при этом преимущества, которые несет .NET Core.


Итоги

Платформа .NET Core – это новый .NET-стек, оптимизированный для разработки с открытым исходным кодом и гибкой доставки через NuGet. Мы работаем с сообществом Mono, чтобы он прекрасно работал на Windows, Linux и Mac, причем Microsoft будет поддерживать его на всех трех платформах.
81 Serginio1
 
04.01.16
17:09
(79) Вот здесь я сделал приложение на Xamarin Forms под андроид http://catalog.mista.ru/public/434771/
используя взрослые библиотеки. Правда возникла проблема с делегатами больше 5 аргументов.
82 spock
 
04.01.16
17:59
(17) Так удобно же на питоне всякое делать.
83 Vladal
 
04.01.16
18:05
(82) У меня знакомый программист везде суёт Руби - он ему привычнее.
84 spock
 
04.01.16
18:12
(0)Покажи ребенку питон, простой и со всеми новомодными фишками из функциональщины. В качестве IDE PyCharm.
85 Garykom
 
гуру
04.01.16
18:12
(83) на прошлой работе "программисты" везде сували vba в офисе... потому что больше нифуя не знали
86 Vladal
 
04.01.16
18:27
(85) и я о том же
87 Музон Хиггса
 
04.01.16
22:18
vba и питон/руби - это "немножко" разные уровни. Впрочем, валящим C и C# c Явой в одну кучу пофиг.
88 Serginio1
 
04.01.16
22:22
(85) Ну а начем внутри офиса писать макросы?
https://support.office.com/ru-ru/article/Краткое-руководство-создание-макроса-455512ef-3532-404e-b8dd-ea6589512c1b

Мне самому приходилось использовать VBA. Для каждой задачи свой инструмент
89 Хранимая Процедура
 
04.01.16
22:34
(0) - а каким боком C# является языком из семейства Си?
90 EvgeniuXP
 
04.01.16
22:47
С# - урод, 1С -форева :)))
91 strange2007
 
04.01.16
22:49
(90) Ща налетят)))))
92 Serginio1
 
04.01.16
23:13
(91) Серьезно?   EvgeniuXP красавчик! Только очень красивый человек может судить об уродстве.
93 EvgeniuXP
 
05.01.16
00:35
(92) не, я как раз наоборот имею в виду: благодаря 1С можно забыть всю алгебру, а высшую мат. тем более.
94 Serginio1
 
05.01.16
00:41
(93) А иногда на досуге тренирую мозги высшей математикой. Зачем её забывать? Она расширяет кругозор.
95 Злопчинский
 
05.01.16
01:22
(94) главное чтобы широкий кругозор не превратился в сферу в вакууме...
96 Serginio1
 
05.01.16
01:24
(95) А какая разница. Главное, что бы это приносило удовольствие. Кто то решает кроссворды, а кто то диффуры.
97 Serginio1
 
05.01.16
01:28
Кроме того это тренирует мозги, организуются новые нейронные связи, позволяя более креативно решать задачи, используя более подходящие алгоритмы. Мозг как и мышцы нужно постоянно тренировать, при этом ставя новые и сложные задачи. Которые не просты для понимания.
98 Записьдампа
 
05.01.16
01:41
(92) Не твоя - вот ты и бесишься! =)
99 romix
 
05.01.16
02:29
(1)(92) Микрософт стараются с дот-нетом ради стабильности кода - типичные дотнетовские программы вполне стабильны, типичные сишные вылетают на ровном месте.

Что-то мне подсказывает, что можно было как-то усовершенствовать сам Си с этой целью, много удачных попыток решить типичные проблемы до их возникновения в типичных релизах массового ПО.
100 Vladal
 
05.01.16
09:02
(99) Вылетают на ровном месте? Ошибка выполнения или ошибка подключенных библиотек? В чём нестабильность?
101 Serginio1
 
05.01.16
09:39
(98) Поясни. Что не моя, чего бешусь?
(99) C++ развивается http://rsdn.ru/forum/philosophy/6299688.flat
но многие работают еще на старых версиях и библиотеках
(100) Из той же ветке сравнения C++ и Rust
У Rust'а:
Продвинутая система модулей;
Гарантии безопасной работы с памятью, большей частью на этапе компиляции;
Гарантии корректной работы с памятью в многопоточных приложениях, тоже большей частью на этапе компиляции;
Паттерн-матчинг;
Алгебраические типы данных;
И при все этом приятный синтаксис (за исключением, пожалуй, генериков).

C++ имеет похожие возможности в некоторых областях, но при этом не дает никаких гарантий.
102 Маратыч
 
05.01.16
09:46
(101) Единственная гарантия рабочего кода - прямые руки разработчика. Всяческие умные приблуды лишь упрощают процесс, но руки не выпрямляют.
103 strange2007
 
05.01.16
10:01
(102) И опять один и тот-же вопрос - где линейка прямолинейности рук? Чем измерять кривизну то? Каждый разработчик считает свои руки самыми прямыми и кто прав?
104 Serginio1
 
05.01.16
10:13
(102) А всегда думал, что голова. Вт например Стивен Уильям Хокинг давно без рук обходтся
105 Serginio1
 
05.01.16
10:17
А по существу, то чем меньше у тебя условий прострелить ногу, тем лучше. Правда при этом ты теряешь в скорости. Тут уж выбирай, что тебе важнее тратить время на этапе разработки или тратить время на скорости работы программы с шансами на ошибки при работе с памятью
106 Mikeware
 
05.01.16
10:25
(105) с ростом сложности - акцент смещается на повышение скорости разработки ценой падения скорости исполнения (либо росту требований, и т.р. - известный "закон рычага").
107 Vladal
 
05.01.16
10:26
Вот все старые ситемы глючные. И как же на них работали-то, как создавали новые системы с помощью старых глючных?
108 Serginio1
 
05.01.16
10:38
(107) Сложность была не такая как сейчас. При повышении сложности и развитии процессоров во главе угла уже стоит скорость разработки и увеличение безопасности кода.
При этом тот же C++ тоже не стоит на месте и развивается, хотя рядом с ним и создаются новые языки учитывающие достоинства и недостатки своего предшественника
109 sash-ml
 
05.01.16
12:10
интересная статейка о выборе языка для начинающих и неопределившихся
http://carlcheo.com/startcoding
110 romix
 
05.01.16
14:17
(100) Падучая болезнь почему-то настигает 64-разрядные версии, я использую IrfanView и Inkscape, внезапные падения (с потерей данных) мягко говоря настораживают.
111 zak555
 
05.01.16
14:21
(103)  это из серии, где прямота рук у 1с-ников
112 romix
 
05.01.16
14:22
+(110) Paint.NET ("почти фотошоп") или Greenshot (программа для скриншотов) падучая болезнь не настигает, но это продукты на .NET.
113 romix
 
05.01.16
14:34
(102) Тут как с медицинскими рисками: вы просто имеете более высокую вероятность выпустить в тираж глючный релиз. Контролируемые среды, вроде бы, ничего нового не добавляют, прямые руки дают результат и там и там, однако же.
114 romix
 
05.01.16
14:36
(105) А у .NET / Java вообще есть компромиссы в скорости по сравнению с родным кодом?
115 Музон Хиггса
 
05.01.16
14:40
(110) С ними проблема скорее всего именно в прямоте рук девелоперов.
116 romix
 
05.01.16
14:51
(101) Вот мне не вполне понятно: можно же было в Си выделить безопасный режим, в котором разработчику не надо соблюдать концентрацию и код аналогичен тому же Русту/Go/Swift/Delphi: переключение между режимами - директивой. По умолчанию - безопасный режим. Потери совместимости быть не должно, поскольку речь бы пошла лишь о препроцессоре.
117 Музон Хиггса
 
05.01.16
14:54
(116) Есть фатальный недостаток: указатели.
118 Asmody
 
05.01.16
14:55
(114) Джависты считают, что CPU и память сейчас несоизмеримо дешевле труда программиста.
119 romix
 
05.01.16
14:55
(117) В безопасном режиме можно сделать обращение через точку, как в Дельфи/1С, без указателей.
120 romix
 
05.01.16
14:56
(115) Тут можно договориться до расовых вопросов. :-) Но их же можно приложить и к самому критику, с этим надо осторожнее. :-)
121 Музон Хиггса
 
05.01.16
14:57
(119) Не будет динамического выделения памяти, без которого ничего толком не напишешь.
122 Mikeware
 
05.01.16
14:57
(118)почему только "джависты", и почему только "сейчас"?
123 Asmody
 
05.01.16
14:58
(119) Роман, ты на rust и nim смотрел? Концептуально очень интересные языки.
124 Маратыч
 
05.01.16
14:58
(118) А в какой-то мере так и есть, если без фанатизма.
125 romix
 
05.01.16
14:59
(118) Так может там нет компромиссов, насколько я могу вспомнить, там же идет компиляция из этого их байт-кода в родной код. С таким же успехом (?) можно было бы компилировать через посредство, например, языка Си.
126 romix
 
05.01.16
15:00
(121) В 1С же выделяется память, когда мы создаем, к примеру, массив или список значений. И в безопасном режиме можно так же (неявная работа с памятью).
127 Asmody
 
05.01.16
15:01
(122) потому что возможность купить ненадолго по потребности еще 10/100/1000 процессоров в облаке появилась относительно недавно
128 romix
 
05.01.16
15:03
(123) Нет, надо будет заценить. Мне еще в C# понравилась идея выделять опасные блоки, вот смотрю она же есть еще и в Руст.
https://ru.wikipedia.org/wiki/Rust_(язык_программирования)
129 Mikeware
 
05.01.16
15:16
(127) да в общем-то, еще товарищ Брукс говорил, что программисты уже обходятся дороже компьютеров... а это было ой как давно...
130 Asmody
 
05.01.16
15:22
(128) nim интересен тем, что компилируется в С. А оттуда уже во все, во что компилируется C.
131 Asmody
 
05.01.16
15:24
(129) Да, но с появлением массовых облачных сред эта разница устремилась к бесконечности.
132 Zapal
 
05.01.16
15:28
(0) даже не знаю, мне кажется эту порочную склонность к программированию в детстве, надо пресекать. Увлечется, станет жестким интровертом - в итоге будет всю жизнь работать на парней поглупее но пообщительнее.

и ардуно к резиновым женщинам прикручивать
133 Serginio1
 
05.01.16
15:31
(114) Весь код компилируется. И выполняется с той же скоростью. Но есть проблемы с инлайнингом, контролем выхода за границы счетчика на алгоритмах где нельзя счетчик заранее ограничен в цикле, плюс работа с матрицами используя расширения процессора.
134 Музон Хиггса
 
05.01.16
15:40
(120) Можно, при желании. Однако у критика все x64 работают без проблем.
135 Serginio1
 
05.01.16
15:44
133 Вот тесты на тяжелой для Net и Java варианте
https://rsdn.ru/forum/flame.comp/6065470.flat.11
136 Serginio1
 
05.01.16
15:47
Хотя в Net есть возможность использования SIMD инструкций