Автор Тема: Языки программирования  (Прочитано 9438 раз)

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

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Юкозовский шаблонизатор в рамках ХТМЛ (в смеси с ХТМЛ)? Или нет?
Именно так.
Обрабатывается это не HTML-парсером браузера, а PHP-парсером Юкоза.
То, что между <? и ?> это вообще чистый PHP (это его скобки).
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Онлайн Python

  • Сообщений: 49729
  • Пол: Мужской
  • Aluarium agent
Юкозовский шаблонизатор в рамках ХТМЛ (в смеси с ХТМЛ)? Или нет?
Именно так.
Обрабатывается это не HTML-парсером браузера, а PHP-парсером Юкоза.
То, что между <? и ?> это вообще чистый PHP (это его скобки).
Скобки такие же, а вот их содержимое — не php. Напр., обратите внимание на $, обрамляющие переменные с обеих сторон (в php $ только слева), или на if/else/endif, отличающийся от обоих вариантов синтаксиса, принятого в php — нужно либо двоеточия добавить, либо убрать endif и добавить фигурные скобки.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

обратите внимание на $, обрамляющие переменные с обеих сторон
Так это переменные шаблонизатора, те же, что и в HTML-части кода.
Шаблонизатор их переводит в их значение, а потом уже подаёт на вход PHP-интерпретатору.

на if/else/endif, отличающийся от обоих вариантов синтаксиса, принятого в php
:??? Фигурные скобки в PHP, как и в JS, для единственного оператора не обязательны.
И двоеточия зачем? Там же не тернарный оператор.
В php есть два варианта if:
1) аналогичный используемому в C/Java/JS — ключевое слово endif не используется, два и более оператора требуют фигурных скобок. (Фрагмент внешнего html-текста — это точно один оператор? Как ведется подсчет — где кончается else?.. В общем, без {} пропадает ясность и возникает риск создать нечто глючное.)
2) позже добавленный вариант с endif и elseif — с двоеточиями вконце заголовков секций и возможностью нескольких операторов в каждой секции условной конструкции:
if ($a == 5):
    echo "a равно 5";
    echo "...";
elseif ($a == 6):
    echo "a равно 6";
    echo "!!!";
else:
    echo "a не равно ни 5 ни 6";
endif;

Да, еще обратите внимание в юкозовском примере на = там, где по логике php должно быть ==
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Уже посмотрел, что напрочь забыл Pythonʼоподобный вариант ветвления.
Значит, это всё PHP-подобный шаблонизатор.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн From_Odessa

  • Сообщений: 59290
  • Пол: Мужской
  • Кожаный проказник-алигатор
Тут я несовсем согласен с мыслью, что язык второстепенен по сравнению с алгоритмом
Если Вы отвечали (хотя бы частично) на мои слова, то тут надо учесть, что я - дилетант ) С программированием знаком слабо, а с языками - совсем слабо, с тем же С++ поверхностно (да и пользовался им последний раз, кажется, 15 лет назад), с другими - почти никак (если не считать вот тот самый шаблонизатор Юкоза). Так что, конечно, я могу нести полную или частичную ерунду. И не с Вами мне об этом спорить ) Правда, такое же мнение высказывал мой преподаватель информатики в университете (что главное - алгоритм), который к тому времени, если не ошибаюсь, был практикующим программистом где-то с 30-летним стажем. Но это мнение лишь одного специалиста. К тому же, возможно, он как раз всю или почти всю карьеру пользовался языками, где все делается сходным образом.

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

Python, Вы не могли (или кто-то другой) на пальцах и простым языком объяснить мне, чем отличаются языки с ООП (для ООП) от других? Лучше всего на примере сходных языков, один из которых ООП, а второй - нет.
Шансы есть всегда. Даже, когда их нет (с) М. Фоменко
Многие думают, что футбол - это вопрос жизни и смерти. Ерунда. Футбол куда важнее (с) Б. Шенкли
Программирование - ещё один вид искусства (с) From_Odessa
Ничто не делает ужин таким вкусным, как отсутствие обеда (с) М. Жванецкий

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
чем отличаются языки с ООП (для ООП) от других?
Наличием ООП ;D.
Ну, вернее, наличием специальных средств для объединения разнородных данных в одну сущность, причём с наличием в этой же сущности (или в более высокой, но это относится уже конкретно к наследованию) средств обработки этих данных.
Сущность, объединяющая данные, зовётся объект, а конкретная функция, находящаяся в объекте и имеющая доступ к его данным, обычно называется метод.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн _Swetlana

  • Сообщений: 21744
  • Пол: Женский
ООП отлаживать/радактировать хорошо. Изменил в одном месте - и всё. А при традиционном структурном программировании лазишь по всей программе и переделываешь, переделываешь.
Поздно я это поняла, когда делали последний хоздоговор.
🐇

Оффлайн From_Odessa

  • Сообщений: 59290
  • Пол: Мужской
  • Кожаный проказник-алигатор
Наличием ООП ;D.
Ну, вернее, наличием специальных средств для объединения разнородных данных в одну сущность, причём с наличием в этой же сущности (или в более высокой, но это относится уже конкретно к наследованию) средств обработки этих данных.
Сущность, объединяющая данные, зовётся объект, а конкретная функция, находящаяся в объекте и имеющая доступ к его данным, обычно называется метод.
Спасибо. Попробую уточнить. Вот тот же С++. Он - язык ООП. Что в нем есть, чего нет в языках не ООП? В С++ есть классы. Это и делает его языком ООП?

ООП отлаживать/радактировать хорошо. Изменил в одном месте - и всё. А при традиционном структурном программировании лазишь по всей программе и переделываешь, переделываешь.
Вы имеете в виду, что при ООП достаточно изменить что-то там, где объявлялся класс, изменить что-то в теле класса, и это изменит все, что в программе связо с ним?
Шансы есть всегда. Даже, когда их нет (с) М. Фоменко
Многие думают, что футбол - это вопрос жизни и смерти. Ерунда. Футбол куда важнее (с) Б. Шенкли
Программирование - ещё один вид искусства (с) From_Odessa
Ничто не делает ужин таким вкусным, как отсутствие обеда (с) М. Жванецкий

Онлайн Python

  • Сообщений: 49729
  • Пол: Мужской
  • Aluarium agent
Цитировать
Так что, конечно, я могу нести полную или частичную ерунду.
Не ерунду — мысль вполне правильная, очень многие вещи на разных языках различаются лишь внешним оформлением, либо эти различия не так уж сложно устранить/заменить близким аналогом. К тому же, активно развивающиеся языки стремятся к реализации одних и тех же возможностей, которые были реализованы раньше у других. Допустим, C, Pascal и другие типичные языки того времени используют примерно один и тот же набор типов данных, алгоритмических конструкций, базовых операций — как и любой другой процедурный язык, создвавшийся в 70-е—80-е под влиянием идей ALGOL-60, а чуть позже BASIC и FORTRAN начала 90-х тоже уже имели вполне структурированный вид. В 90-е установилась мода на объекты и классы — место процедурных языков заняли их объектно-ориентированные диалекты/потомки (C++, Delphi, VisualBasic, Java и пр.), после 2010 модной тенденцией стало функциональное программирование (в последних версиях популярных языков, как правило, есть лямбды, замыкания и пр.)... В конечном итоге, программисты на разных языках используют примерно один и тот же инструментарий.

Я говорил лишь, что несовсем согласен. Чтобы можно было ощутить влияние языков на код, их возможности должны различаться достаточно радикально. «Интересный» язык должен быть в чем-то очень оригинальным, а в чем-то, возможно, очень урезанным.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Вот тот же С++. Он - язык ООП. Что в нем есть, чего нет в языках не ООП? В С++ есть классы. Это и делает его языком ООП?
Если есть классы, это уже более узкий тип класс-ориентированного программирования.
Но в принципе верно. Делает его языком ООП то, что в нём есть классы и экземпляры этих классов.
Не будь экземпляров-объектов: какое тут к чертям ООП?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Онлайн Python

  • Сообщений: 49729
  • Пол: Мужской
  • Aluarium agent
В С++ есть классы. Это и делает его языком ООП?
Безусловно.
Хотя, с другой стороны, классы в С++ можно и не использовать, а писать программы в C-подобном процедурном стиле. А вот если взять более чистый в плане ООП язык, как Java, то там попросту нельзя написать программу, не создав хотя бы один класс, в который заворачивается функция main (впрочем, неуверен, можно ли считать классом такой класс без экземпляров и потомков, или же его правильнее было бы считать модулем).

Если быть точным, классы — лишь один из вариантов реализации ООП, и, в принципе, существуют и объектно-ориентированные языки, где понятие «класс» не используется, а наследование обеспечивается через механизм прототипов. Подобная концепция используется в JavaScript'е, но в последних версиях классы там тоже появились. Ключевым пунктом для ООП являются объекты — сущности, содержащие в себе и данные, и код (инкапсуляция), подлежащие замене объектом с другой реализацией методов (полиморфизм) и, как правило, способные использовать методы, определенные ранее для других объектов (наследование).

С точки зрения внутренней реализации, объект (экземпляр класса) представляет собой структуру с указателями на функции-методы (размещенные непосредственно в структуре или вынесенные за ее пределы в таблицу методов). Такого рода структуру можно создать и в процедурном языке типа C, где понятие «класс» изначально отсутствует. Так что ООП-подход возможен и в языках, непосредственно под ООП не заточенных.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
в последних версиях классы там тоже появились
Там появился лишь синтактический сахар с зарезервированным с момента создания JS словом class.
Прототипное наследование как было, так и осталось.
Даже приватных и статических свойств не ввели.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн _Swetlana

  • Сообщений: 21744
  • Пол: Женский
Да, изменяешь в описании класса, автоматически меняется во всех экземплярах.
До какого-то размера программы структурное программирование - милое занятие, и нечего тут огород городить. А потом вдруг раз - пушной зверь подкрался незаметно.
У меня, правда, была специфика. Эвристические алгоритмы отлаживают на реальных данных - вносят изменения, меняют настроечные константы и пр. И мне в голову приходили разные хорошие мысли,  два-три раза в день. Каждый день два раза я меняла алгоритм и вносила изменения в программу. Вот тут я поняла, что ООП - это сила, но было уже поздно.
🐇

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Каждый день два раза я меня алгоритм
Offtop
Начинает что-то подозревать.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн _Swetlana

  • Сообщений: 21744
  • Пол: Женский
Каждый день два раза я меня алгоритм
Offtop
Начинает что-то подозревать.
А что?
Offtop
самой интересно ста
🐇

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Offtop
У Вас есть алгоритм. :tss:
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

From_Odessa, вот спэшлфою на Хабре историческая статья: https://habr.com/company/ruvds/blog/428582.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Оффлайн Ömer

  • Сообщений: 3764
На работе пишу, в основном, на C# и Powershell.
Самый любимый -- язык Mathematica.

Вот, например, как задать в Mathematica функцию факториал.
f[1]:=1
f[n_]:=n*f[n-1]
ya herro, ya merro

Онлайн злой

  • Сообщений: 15760
  • Пол: Мужской
  • це якась маячня
На работе пишу, в основном, на C# и Powershell.
Самый любимый -- язык Mathematica.

Вот, например, как задать в Mathematica функцию факториал.
f[1]:=1
f[n_]:=n*f[n-1]

На первый взгляд напоминает Лисп и прочую лямбду.
Хлеба к обеду в меру бери,
Хлеб - драгоценность, его береги

Оффлайн _Swetlana

  • Сообщений: 21744
  • Пол: Женский
На работе пишу, в основном, на C# и Powershell.
Самый любимый -- язык Mathematica.

Вот, например, как задать в Mathematica функцию факториал.
f[1]:=1
f[n_]:=n*f[n-1]
Испорченный Пролог  ;D
Программа неправильная. Задайте n=0, например.

       
🐇

Онлайн злой

  • Сообщений: 15760
  • Пол: Мужской
  • це якась маячня
Ещё в последнее время в моде асинхронность. Правда, у тех же Node.js и PHP она не совсем настоящая, однопоточная, но это, с одной стороны, и хорошо, с истинной параллельностью выполнения и реентерабельностью кода вообще мозги в  баранку скрутятся, как сделать так, чтобы одна функция не убегала вперёд другой. Хотя, кажется, есть истинно многопоточная реализация асинхронности для Java, и вроде как Erlang. Сам с ними не работал.
Хлеба к обеду в меру бери,
Хлеб - драгоценность, его береги

Оффлайн _Swetlana

  • Сообщений: 21744
  • Пол: Женский
 :) from Z0+, конечно.

🐇

Оффлайн Upliner

  • Сообщений: 4385
  • Пол: Мужской
  • Blanklanugbesto
    • Лингвополитика
Хотя, кажется, есть истинно многопоточная реализация асинхронности для Java
Что есть по вашему "истинно многопоточная реализация асинхронности"?
Если уж на то пошло, то любой поток работает асинхронно. Проблемы возникают если разные потоки используют одни и те же данные. Классический способ решения этих проблем -- мютексы.
Но в последнее время всё более проявляется мода на другой подход -- вообще свести к минимуму расшаренные между разными потоками данных. Насколько я слышал, например в Rust каждый объект жёстко привязан только к одному потоку и другой поток может к нему обратиться только "одолжив" его -- на время перепривязав к себе.
Аналогично в Golang -- мютексы там есть, но считаются "неизбежным злом", жёсткой привязки объектов к потокам тоже нет. Однако использование мютексов не рекомендуется, и вместо этого рекомендуется, чтобы с данными работал только один поток, а остальные потоки получали данные от этого потока по специальным каналам.
Мы, видите ли, винтили вентили аж квинтиллион раз!
LiPo agent

Онлайн Python

  • Сообщений: 49729
  • Пол: Мужской
  • Aluarium agent
Если сделать данные по умолчанию immutable, как в Clojure, то половина проблем с синхронизацией отпадает. Впрочем, изменяемые объекты в нескольких вариантах для межпоточного взаимодействия там тоже имеются.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Оффлайн Bhudh

  • Сообщений: 64349
  • Пол: Мужской
  • aka 蝎
    • Сайты по языкознанию
Правда, у тех же Node.js и PHP она не совсем настоящая, однопоточная
В JS (Node.js — это всего лишь серверная реализация JS-движка V8, а не отдельный язык) для параллельных вычислений есть Web Workers.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

 

В быстром ответе можно использовать BB-теги и смайлы.

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Имя: E-mail:
Визуальная проверка:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: