БК-0010 старца

БК-0010 старца

Сообщение Fouras » Вс сен 03, 2017 8:40 pm

sng писал(а):
Fouras писал(а):Эм... э-э-э... что?


Истинность высказывания "sng знает лучше других практически все в программировании" зависит от того, с кем сравнивать, и того, какие области брать (хотя если акцент на количестве ("9/10 знаний по программированию"), последнее уже не важно, главное уметь его определить). Остальное менее значимо, в т.ч. то, как оценивать.

Изображение
Пояснил так пояснил
Аватара пользователя
Fouras
Старожил
Старожил
 
Сообщения: 7249
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 11
Пол: Мужской

БК-0010 старца

Сообщение Eiffel » Вс сен 03, 2017 8:41 pm

Fouras писал(а):Да вы вообще друг друга вылизываете, это заметно.


Если нормально общаться и отвечать за свои слова называется "вылизыванием" -- почему бы и нет.
Eiffel
Местный
Местный
 
Сообщения: 1288
Зарегистрирован: Чт июн 29, 2017 5:27 pm
Медали: 1

БК-0010 старца

Сообщение mr.Midas » Вс сен 03, 2017 9:29 pm

sng писал(а):Я просто хотел нормальной дискуссии

Понимаешь, с тобой есть один нюанс - тебе нельзя отвечать напрямую. То ли черта характера, то ли возрастное, но ты сразу бросаешься в полемику вместо дискуссии (боюсь мне сейчас предложат объяснить разницу между дискуссией и полемикой :o ). Дискуссия с "%username%, ты идиот!!!" не начинается. Так начинается полемика. Поэтому приходится тебя за ручку протягивать по процедуре дискуссии. Ты должен сам дойти до ответа и только потом сравнивать его с чужим. Поэтому и приходится задавать наводящие вопросы, предупреждая твоё сваливание в позу :add28 с развешиванием ярлыков. Я не отвечаю на некоторые твои вопросы не потому что вредничаю, а потому что не хочу каждый раз делать так: "Изображение Голову включи!!!" Ты достаточно большой мальчик, что бы тебе разжевывать всё подряд. Вот и работай своей головой не только задавая вопросы, но продумывая возможные ответы.
Например тут:
sng писал(а): Здесь может быть множество самых разных признаков, описываемых с разных позиций -- разная форма, разные формулы, которыми можно задать соответствующие фигуры в определенной системе координат, разные формулы для вычисления определенных их параметров, разные значения этих параметров, например.

Ты хоть секунду на подумать потратил прежде чем это всё писать? Крупно сомневаюсь. О каких формулах ты говоришь? Формула длинны или площади? Да, такие есть. Но назови мне формулу именно треугольника, а не его площади. Их просто нет т.к. это базовые геометрические примитивы. Аксиомы, если говорить в терминах математики. Какая может быть формула у аксиомы? А форма? Ты можешь назвать мне хотя бы одну фигуру без формы. Ну да, газы не имеют собственной формы. Но где газы и где геометрические фигуры. Извини, но для своего вопроса ты не напряг ни одной своей извилины и ещё просишь ответа. Хорошо, будет тебе ответ:
3-х угольник
4-х угольник
5-х угольник
....
n угольник
Вопрос: что из себя представляет 2-х угольная фигура? А 0-угольная? В представленной последовательности какой элемент стоит первым?
И это всё не демагогия. Мне с твоего вразумления не накапает. Ни в кошелёк, ни в карму.

Ну так что, будет хоть какой-то ответ на вопрос о контекстах? Ну и разумеется подсказка, раз уж мы без них не можем...
Аватара пользователя
mr.Midas
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 19840
Зарегистрирован: Ср июл 27, 2011 4:52 pm
Медали: 5
Пол: Мужской
Соционический тип: Дон Кихот
Тип по психе-йоге: Эпикур (ФЛЭВ)
Темперамент: Сангвиник
Профессия: Гэльвин в поиске

БК-0010 старца

Сообщение Буран » Вс сен 03, 2017 11:14 pm

Fouras писал(а):Во-первых.1, интерпретируемые языки зачастую имеют в себе встроенный транслятор из строк в него же самого. То есть, на JS, к примеру, легко можно попросить ввести формулу и выполнить ее. На компиляторе тебе придется написать интерпретатор для формул. То есть, все равно к интерпретатору сведется. Можно компилировать... но этим никто не заморачивается, современные средства защиты не позволяют легко это делать, да обычно и мало смысла. Например, мой интерпретатор формул, которые подчитываются из файлов при моделировании систем (машины, электропроводка машин и т.п.) работает на double-ах и всего в 1.5 медленнее скомпилированных аналогов.

Во-первых.2, создание программ на лету прерогатива интерпретаторов. А компиляторы могут это сделать обычно построением именно интерпретатора в себе. Есть даже такой шаблон программирования.

Во-вторых, средства рефлексии. Интерпретируемые языки зачастую позволяют разобрать все данные, обойти их, узнать тип. Например, обойти поля объекта. В компиляторах это сделать возможно, но они пока в этом сильно отстают. С++ в этом плане проигрывает той-же Java. Хотя... есть несколько фокусов, которые добавляют довольно много рефлексии в С++, так что можно шаблонными функциями перебирать поля, к примеру. Очевидно, тут фокус в способе задания полей, которые еще каким-то образом регистрируются. Есть и компиляторы с развитой рефлексией и довольно сильной модификацией, например Objective-C. Но не бесплатно, конечно.

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

Макросы Лиспа - программы создаваемые в процессе работы. Кстати, Лисп вполне компилируем, но частично. Как и JS: eval и new Function еще никто не отменял. Ну и требования к рефлексии структур... э-э-э-э, ну не все так просто, короче. Практически любой интерпретатор хотя бы частично компилируем, а компиляторы из коробки могут поставлять неплохие по гибкости возможности, пусть и с потерей эффективности.

Даже так: любой интерпретатор компилируем, если отказаться от динамического создания процедур. GNU Prolog, например: перегоняют в WAM-код, оптимизируют, каждую операцию перегоняют в абстрактный ассемблер, еще раз оптимизируют и компилируют в нэйтивный код. В результате он всех рвет по эффективности.

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


То есть в двух словах
1. Интерпретатор позволяет на лету добавлять в программу новый код.
2. Интерпретируемый язык имеет более глубокую рефлексию.

Ты, наверно, заразился многословием от sng. :P Но всё равно спасибо за информацию (хотя я всё это знал, но, чтобы додуматься до формулировок, потребовалось бы значительное время :oops: )

Хотя про рефлексию я студентам говорить не буду, у них она в середине 2-го семестра. А про новый код скажу... тем, кто будет в следующем году.


Вообще, удивительно: 7-й год рассказываю один и то же курс, почти по одной и той же программе. Но каждый раз, стоит только чуть по-новому расставить акценты, и сразу возникают новые вопросы и идеи. Наверно, у лекторов-рационалов такой проблемы нет, они всегда катят по одной колее. :add14
Аватара пользователя
Буран
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 33333
Зарегистрирован: Чт сен 03, 2015 5:29 pm
Медали: 15
Пол: Мужской
Тип по психе-йоге: Лао-цзы (ЛВФЭ)
Профессия: проповедник неокосмизма

БК-0010 старца

Сообщение Nafeyhoa » Вс сен 03, 2017 11:41 pm

Parf
А на каком языке ты студентов учишь программировать?

И вообще, какой язык больше подходит в качестве первого языка?
Аватара пользователя
Nafeyhoa
Dark side
Dark side
 
Сообщения: 18970
Зарегистрирован: Вт апр 30, 2013 11:59 pm
Откуда: Дно Кихота
Медали: 7

БК-0010 старца

Сообщение Буран » Вс сен 03, 2017 11:47 pm

Nafeyhoa писал(а):Parf
А на каком языке ты студентов учишь программировать?


С++

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


Для первого - наверно, Java неплохо подходит. Но потом всё равно же придётся C++ учить. Нет смысла тратить двойное время. :)
Аватара пользователя
Буран
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 33333
Зарегистрирован: Чт сен 03, 2015 5:29 pm
Медали: 15
Пол: Мужской
Тип по психе-йоге: Лао-цзы (ЛВФЭ)
Профессия: проповедник неокосмизма

БК-0010 старца

Сообщение Fouras » Вс сен 03, 2017 11:50 pm

Я за JavaScript первым языком. Уровень вхождения минимален: только сел и пиши, работает везде, ничего не надо ставить, можно сразу сделать игру.

Потом, думаю Паскаль. Чтобы освоить типы.
Аватара пользователя
Fouras
Старожил
Старожил
 
Сообщения: 7249
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 11
Пол: Мужской

БК-0010 старца

Сообщение Буран » Пн сен 04, 2017 12:02 am

JavaScript - очень уж специфический язык, потом придётся многое переучивать. :add14
Аватара пользователя
Буран
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 33333
Зарегистрирован: Чт сен 03, 2015 5:29 pm
Медали: 15
Пол: Мужской
Тип по психе-йоге: Лао-цзы (ЛВФЭ)
Профессия: проповедник неокосмизма

БК-0010 старца

Сообщение mr.Midas » Пн сен 04, 2017 3:00 pm

Nafeyhoa писал(а):И вообще, какой язык больше подходит в качестве первого языка?


Ты их не слушай, а то они тебя дурному научат. :add194

В целом есть два пути освоения программирования. Если вспомнить где мы находимся, то это БЛ и ЧЛ пути.
Для БЛ начинать надо с языка блок схем (ЯБС) и UML. Имея на руках блок-схему, вопроса о том какой язык использовать в проекте уже вообще не стоит т.к. любой ЯП является диалектом ЯБС. Ситуация выглядит как с русским, украинским и белорусским, где зная русский можно на любом из них писать текст изредка подглядывая в словарь за уточнением. Не за определением слов, а именно уточнением. К главным преимуществам блок-схем, помимо унифицированности, относится и то что к разработке проекта можно подключать и специалистов предметной области, т.е. тех на кого нацелена данная разработка. Листинг на Си бухгалтерской программы редкий бухгалтер поймёт. А вот в виде блок-схемы он может уже оценить те или иные особенности реализации. Так что ЯБС - единственный способ коллективной работы междисциплинарных специалистов на общим алгоритмом. Третье не менее важное преимущество - вневременность. ЯП как сезонные эпидемии гриппа, мгновенно рождаются и так же быстро умирают вместе с той областью под которую и создавались. Сейчас нередко можно встретить поиск специалистов по языку уже утратившему экономическую актуальность, но имеющему накопленный багаж в листингах. Блок-схемы, в силу значительной абстрагированности, всегда понятны. И сейчас и через 50 лет. И даже тому кто не изучал ЯБС...

Для ЧЛ надо плясать от печки, т.е. от проекта. ЯП - отраслевая адаптация формальной языковой системы, т.е вещь чисто прикладная. Соответственно выбирать надо тот ЯП, который актуален сегодня и будет жив ещё хотя бы лет 10 в той отрасли, в которой ты собираешься работать. Абстрактные программы не имеющие отраслевого воплощения пишут разве что математики на математическом языке (эти ребята с прикладным программированием вообще плохо дружат). То какую отраслевую специализацию имеет тот или иной язык, стоит отдельно проверять через поиск в сети в тот год, когда ты делаешь выбор. Ситуация с прикладнм применением того или иного ЯП сверх динамична и результаты анализа очень быстро устаревают...
Аватара пользователя
mr.Midas
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 19840
Зарегистрирован: Ср июл 27, 2011 4:52 pm
Медали: 5
Пол: Мужской
Соционический тип: Дон Кихот
Тип по психе-йоге: Эпикур (ФЛЭВ)
Темперамент: Сангвиник
Профессия: Гэльвин в поиске

БК-0010 старца

Сообщение Буран » Пн сен 04, 2017 3:08 pm

В UML есть диаграммы состояний - это, вроде, по сути и есть блок-схемы. :add14
Аватара пользователя
Буран
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 33333
Зарегистрирован: Чт сен 03, 2015 5:29 pm
Медали: 15
Пол: Мужской
Тип по психе-йоге: Лао-цзы (ЛВФЭ)
Профессия: проповедник неокосмизма

БК-0010 старца

Сообщение Fouras » Пн сен 04, 2017 3:13 pm

Не слушай Мидаса.

Блок схемы были придуманы на заре программирования, и как 95% того что входит в UML нужны не программистам, а менеджерам и вообще людям отчасти причастным к программированию, чтобы у них сложилось впечатление, что они понимают что происходит.

Большинство алгоритмов, даже простых, совершенно не разобрать по блок схеме, поэтому эта аннотация осталась лишь в старых ГОСТ-ах и кошмарных снах старичков. Любой псевдокод или реализация на реальном языке понятнее.

любой ЯП является диалектом ЯБС

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

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

Начинать надо с того, что любой человек сделает быстро и увидит результат работы программы. Дальнейшее обучение уже целевое. Такая практика обучения себя оправдывает.
Аватара пользователя
Fouras
Старожил
Старожил
 
Сообщения: 7249
Зарегистрирован: Пн июн 12, 2017 1:23 am
Медали: 11
Пол: Мужской

БК-0010 старца

Сообщение mr.Midas » Пн сен 04, 2017 3:43 pm

Parf писал(а):То есть в двух словах
1. Интерпретатор позволяет на лету добавлять в программу новый код.
2. Интерпретируемый язык имеет более глубокую рефлексию.


Это всё вторично. Главное же различие находится в колыбели - мэинфреймах. Все первые языки той эпохи компилируемые. Компиляция - следствие необходимости обойти аппаратные особенности из-за которых обще программный контекст пришлось разделить на 2, выделив среду создания кода и среду его исполнения в автономные сущности. Точнее разделение было изначальным, а софт под него адаптировался. Поэтому когда приняли парадигму слияния юзерспейса с сервером, системный софт так же адаптировался и появились интерпретаторы. С точки зрения сущности самого программирования реальной разницы между компиляцией и интерпретацией нет. Это просто разные формы трансляции. Тем более что кластерная организация практически сводит на нет практически все различия. В распределённой среде они полностью нивелируются. Другой вопрос багаж. Алгоритмические наработки, методологии и груз реализованных проектов никуда не делся и его приходится учитывать. Так что реальное различие с прагматической стороны в саппорте и времени реакции на запрос со стороны заказчика. А это уже определяется отраслевыми особенностями: RTS, отказоустойчивость, отзывчивость, UserFriendly - именно это определяет какие архитектурные особенности того или иного способа трансляции использовать.
Ergo sum: разделение ЯП на компилируемые и интепретируемые носит исторический характер и в современных условиях не имеет практического значения за пределами саппорта существующих проектов. Количество костылей устраняющих различия в реализации того или иного ЯП уже вплотную подошло к порогу качественного перехода. В исторической перспективе же все преимущества/недостатки являются следствием именно раздельности/слитности контекстов.
Аватара пользователя
mr.Midas
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 19840
Зарегистрирован: Ср июл 27, 2011 4:52 pm
Медали: 5
Пол: Мужской
Соционический тип: Дон Кихот
Тип по психе-йоге: Эпикур (ФЛЭВ)
Темперамент: Сангвиник
Профессия: Гэльвин в поиске

БК-0010 старца

Сообщение mr.Midas » Пн сен 04, 2017 3:54 pm

Fouras писал(а):Не слушай Мидаса.

Блок схемы были придуманы на заре программирования, и как 95% того что входит в UML нужны не программистам, а менеджерам и вообще людям отчасти причастным к программированию, чтобы у них сложилось впечатление, что они понимают что происходит.


:add13 Что значит погрязший в своём элитаризме узкий специалист. Как только кто-то покушается на его исключительность, здравый смысл отключается как опасная сущность... :add194 :I12
"- Вот поэтому я и не люблю кошек!
- Ты просто не умеешь их готовить"... :lol:

Я так понимаю в нормальной отраслевой разработке и внедрении ты не участвовал... :I4
Аватара пользователя
mr.Midas
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 19840
Зарегистрирован: Ср июл 27, 2011 4:52 pm
Медали: 5
Пол: Мужской
Соционический тип: Дон Кихот
Тип по психе-йоге: Эпикур (ФЛЭВ)
Темперамент: Сангвиник
Профессия: Гэльвин в поиске

БК-0010 старца

Сообщение mr.Midas » Пн сен 04, 2017 4:07 pm

Fouras писал(а):что программы на Прологе никому в голову не придет рисовать в блок схемах

Ни один специалист разбирающийся в программировании не будет рисовать программу в блок-схемах именно по той же причине, по которой он не будет писать программу без алгоритма. Это консольную тулзу на пару сотен строк можно написать на коленке по наитию. А более или мене серьёзный проект требует алгоритмизации. Только две буквы ТЗ уже требуют наличия алгоритма. А если за эти две буквы ты ещё и деньги получаешь, то без ЯБС тебе уже никак. 90% работ программистов - отраслевые проекты, а не инструменты для программистов. Ну и не забываем о том что и среди программистов есть разделение по специальностям. И то что гоже архитектору, совсем невместно кодеру, особенно индийскому... :D
Аватара пользователя
mr.Midas
КБ 'Грядущее'
КБ 'Грядущее'
 
Сообщения: 19840
Зарегистрирован: Ср июл 27, 2011 4:52 pm
Медали: 5
Пол: Мужской
Соционический тип: Дон Кихот
Тип по психе-йоге: Эпикур (ФЛЭВ)
Темперамент: Сангвиник
Профессия: Гэльвин в поиске

БК-0010 старца

Сообщение Nafeyhoa » Пн сен 04, 2017 4:10 pm

О, какой замес пошел))

Немного неловко даже теперь спрашивать, но что вы среди всего этого о Python думаете?

Хотя скорее всего буду потихоньку дальше Джаву учить, так вышло что начала въезжать в нее, хотя опасалась и была настроена выбрать что-то очень простое. Вот я на Питона посматривала.
Аватара пользователя
Nafeyhoa
Dark side
Dark side
 
Сообщения: 18970
Зарегистрирован: Вт апр 30, 2013 11:59 pm
Откуда: Дно Кихота
Медали: 7

Пред.След.

  • { SIMILAR_TOPICS }
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в Башня старца Фура

Кто сейчас на конференции

Зарегистрированные пользователи: GoGo [Bot], Google [Bot], Google Search Appliance, Michael_Loger, MNick2017, Prokrust, rtanya, Yandex 3.0 [Bot], Yandex [Bot], Zevs, Полосатое море