Re[14]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 24.10.08 15:11
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, VladD2, Вы писали:


VD>>Можно пример интересной концепции из ПХП которых нет в других языках?

VD>>Хотя... пойдут и дублирующиеся...

ВВ>Ну ничего такого особого уникального в php нет, хотя возможностей скажем в php5 на порядок больше чем в джаваскрипте. Во-первых, там полноценное ООП (наследование, абстрактные классы, интерфейсы, перегрузка, есть даже конструкторы и деструкторы). Ну что еще... итераторы. Механизм рефлексии кстати тоже есть. Причем все это "по-взрослому" сделано — там области видимости, пространства имен.


Угу, и ворох всякого хлама еще со времен третьей версии, для обратной совместимости

ВВ>Помнится, в свое время тебе нравилось что-то в стиле "My name is $name", если я ничего не путаю.


В PHP вот такое "заинстрингованное $name" — прямой путь к XSS'ам, SQL-инъекциям и расщеплениям http-запросов

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[8]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 24.10.08 15:11
Оценка: :))) :)
Здравствуйте, _FRED_, Вы писали:

VD>>Кстати, что здесь делает PHP?


_FR>Да как обычно : хотели написать Nemerle, да опечатались.


"И так 17 раз..." (с)

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[15]: The future of programming languages by Хейлсберг
От: Курилка Россия http://kirya.narod.ru/
Дата: 25.10.08 16:52
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

[cut]
KV>В PHP вот такое "заинстрингованное $name" — прямой путь к XSS'ам, SQL-инъекциям и расщеплениям http-запросов

Извиняюсь за серость, но что такое "расщепления http-запросов"?
Re[16]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 25.10.08 18:49
Оценка: 21 (5)
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, kochetkov.vladimir, Вы писали:


К>[cut]

KV>>В PHP вот такое "заинстрингованное $name" — прямой путь к XSS'ам, SQL-инъекциям и расщеплениям http-запросов

К>Извиняюсь за серость, но что такое "расщепления http-запросов"?


Это атака на пользователей веб-приложения aka "CRLF-инъекция". Ее осуществление становится возможно, когда параметры какой-либо точки входа в веб-приложение без должных проверок и преобразований попадают в заголовок ответа на http-запрос (как правило, при необходимости редиректа или установки cookies). Это позволяет внедрить в заголовок символы перевода строки и, тем самым, разделить его на два независимых, но обрабатываемых браузером. В результате успешной атаки, атакующий получает возможность осуществить "паровозом" атаку XSS, скомпроментировать cookie, подменить возвращаемую страницу либо перехватить оригинальную и отравить кэш прокси. Зависит от окружения веб-приложения и фантазии атакующего.

Подробнее об этой атаке (а также многих других) можно почитать здесь (про расщепление запроса: п.3.3.)

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: The future of programming languages by Хейлсберг
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.10.08 06:52
Оценка: :))
Здравствуйте, IB, Вы писали:

КЛ>>Ну во-первых, не создавал, я допиливал, а во-вторых их всего 2.

IB>Именно что создавал и как минимум три.

По последним сведения (см. Википедию) объектные расширения для Паскаля в первые появились у Апла. Так что говорить о каких-то новых языках вообще не приходится.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: The future of programming languages by Хейлсберг
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.10.08 09:39
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>По последним сведения (см. Википедию) объектные расширения для Паскаля в первые появились у Апла. Так что говорить о каких-то новых языках вообще не приходится.


Синклер, а что забавного ты узрел в моих словах?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: The future of programming languages by Хейлсберг
От: Воронков Василий Россия  
Дата: 27.10.08 12:07
Оценка: +1 :)
Здравствуйте, VladD2, Вы писали:

VD>Дело не в неявном приведении. Можешь создать делегат явно, от этого ничего не изменится. Ну, кроме того, что с таким кодом вообще работать будет противно. Дело именно в том, что нельзя провести корреляцию по названию функции и названию делегата. И в том, что уникальны именно типы делегатов, а вот засунуть в них можно все что хочешь. И это не спроста.

VD>В общем, похожая ошибка была в С++. Ее тоже защищали толпы фанатов. Толку от этого было — 0.

Перебор, нет?


interface ILove
{
  void MakeLove();
}

class Terrorism : ILove
{
  void ILove.MakeLove()
  {
     LunchMissiles();
  }
}

class Bedroom
{
 void Action(ILove love)
 {
   love.MakeLove();
 }
}


или еще хуже:

class Love
{
  public virtual void MakeLove()
  {
     [censored]
  }
}


class Terrorims
{
   public override void MakeLove()
   {
      LunchMissiles();
   }
}


Т.е. все ООП в корне своем — это зло?
Re[15]: The future of programming languages by Хейлсберг
От: Воронков Василий Россия  
Дата: 27.10.08 12:47
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Угу, и ворох всякого хлама еще со времен третьей версии, для обратной совместимости


Что никак не умоляет его достоинств перед жабо-скриптом

ВВ>>Помнится, в свое время тебе нравилось что-то в стиле "My name is $name", если я ничего не путаю.

KV>В PHP вот такое "заинстрингованное $name" — прямой путь к XSS'ам, SQL-инъекциям и расщеплениям http-запросов

Ну так не используй его для SQL, извините, "инъекций". Неужели генерить запросы к БД — это первое что приходит в голову глядя на пример? С помощью String.Format тоже можно дров наломать. Тут наверное не инструмент, а руки виноваты.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[16]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 27.10.08 14:50
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Угу, и ворох всякого хлама еще со времен третьей версии, для обратной совместимости


ВВ>Что никак не умоляет его достоинств перед жабо-скриптом


ВВ>>>Помнится, в свое время тебе нравилось что-то в стиле "My name is $name", если я ничего не путаю.

KV>>В PHP вот такое "заинстрингованное $name" — прямой путь к XSS'ам, SQL-инъекциям и расщеплениям http-запросов

ВВ>Ну так не используй его для SQL, извините, "инъекций".


А я его вообще не использую. Я ищу (и бывает, использую) как раз-таки SQL-инъекции, сотворенные теми, кто его использует

ВВ>Неужели генерить запросы к БД — это первое что приходит в голову глядя на пример?


Судя по php-ным проектам, на которых мне довелось проводить тесты на проникновение: так и есть. Причем порой кажется, что это не только "первое", но и "единственное", что приходит в голову основной серой массе сайтоштамповщиков.

ВВ>С помощью String.Format тоже можно дров наломать. Тут наверное не инструмент, а руки виноваты.


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

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[16]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 27.10.08 16:29
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Угу, и ворох всякого хлама еще со времен третьей версии, для обратной совместимости


ВВ>Что никак не умоляет его достоинств перед жабо-скриптом


А какие, кстати, у него перед javascript достоинства?

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[17]: The future of programming languages by Хейлсберг
От: Воронков Василий Россия  
Дата: 27.10.08 16:51
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А какие, кстати, у него перед javascript достоинства?


Достоинства были перечислены в письме до этого. Взять наличие полноценного ООП хотя бы.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[18]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 27.10.08 20:10
Оценка: 6 (1)
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>А какие, кстати, у него перед javascript достоинства?


ВВ>Достоинства были перечислены в письме до этого. Взять наличие полноценного ООП хотя бы.


Ну во-первых, javascript гибридный язык, коим php только собирается начинать становиться в последних альфах. Во-вторых, ООП через прототипирование я бы не назвал неполноценным, скорее альтернативным. В третьих, это весьма и весьма гибкий язык. Например PM вот такого вида:

var fact = function (n) {
    return match([
        [0, function() { return 1; }],
        [$('n'), function(result) { return result.n * fact(result.n - 1); }]
    ], n);
};


Реализуется на js относительно просто, а главное понятно даже для тех, кто с синтаксисом и конструкциями языка знаком слабо. Как бы это выглядело на php — страшно себе представить.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[19]: The future of programming languages by Хейлсберг
От: Воронков Василий Россия  
Дата: 27.10.08 20:45
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ну во-первых, javascript гибридный язык, коим php только собирается начинать становиться в последних альфах. Во-вторых, ООП через прототипирование я бы не назвал неполноценным, скорее альтернативным. В третьих, это весьма и весьма гибкий язык.


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

А при вашей логике вообще получается, что, скажем, C# 1.0 бледно выглядит по сравнению с джава-скриптом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[19]: The future of programming languages by Хейлсберг
От: rameel https://github.com/rsdn/CodeJam
Дата: 28.10.08 10:27
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Ну во-первых, javascript гибридный язык, коим php только собирается начинать становиться в последних альфах. Во-вторых, ООП через прототипирование я бы не назвал неполноценным, скорее альтернативным. В третьих, это весьма и весьма гибкий язык. Например PM вот такого вида:


KV>
KV>var fact = function (n) {
KV>    return match([
KV>        [0, function() { return 1; }],
KV>        [$('n'), function(result) { return result.n * fact(result.n - 1); }]
KV>    ], n);
KV>};
KV>


KV>Реализуется на js относительно просто


За ссылку !
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 >>
Re[14]: The future of programming languages by Хейлсберг
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.10.08 17:55
Оценка:
Здравствуйте, Воронков Василий, Вы писали:


ВВ>Ну ничего такого особого уникального в php нет, хотя возможностей скажем в php5 на порядок больше чем в джаваскрипте. Во-первых, там полноценное ООП (наследование, абстрактные классы, интерфейсы, перегрузка, есть даже конструкторы и деструкторы). Ну что еще... итераторы. Механизм рефлексии кстати тоже есть. Причем все это "по-взрослому" сделано — там области видимости, пространства имен.

ВВ>Да и вообще довольно интересный язык в принципе. Работа с массивами организована интересно, даже конкатенация строк. Помнится, в свое время тебе нравилось что-то в стиле "My name is $name", если я ничего не путаю. По крайней мере по сравнению с джаваскриптом где всего-то парочка занятных фишек php5 выглядит очень даже внушительно

$name есть и не только в PHP. В том же Nemerle еше и ..$names есть. Да и маловато на мой взгляд одной "удобности" для зачисления языка в список интересных. Хейльсберг озвучил главные направления (по его мнению) развития программирования. декларативизация и параллелизм. По его же мнению средствами воплощения этих идей в будни мэйнстнима являются функциональный подход, DSL-и (причем и встроенные в язык DSL-и) и метапрограммирование.
Что тут может предложить ПХП я ума не могу приложить. $-тотация в строках — это конечно DSL, но на шаг в развитии языкостроения это явно не тянет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: The future of programming languages by Хейлсберг
От: Воронков Василий Россия  
Дата: 28.10.08 18:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>$name есть и не только в PHP. В том же Nemerle еше и ..$names есть. Да и маловато на мой взгляд одной "удобности" для зачисления языка в список интересных. Хейльсберг озвучил главные направления (по его мнению) развития программирования. декларативизация и параллелизм. По его же мнению средствами воплощения этих идей в будни мэйнстнима являются функциональный подход, DSL-и (причем и встроенные в язык DSL-и) и метапрограммирование.

VD>Что тут может предложить ПХП я ума не могу приложить. $-тотация в строках — это конечно DSL, но на шаг в развитии языкостроения это явно не тянет.

Блин, ну в ПХП хотя бы ООП есть
А жабо-скрипт состоит из "огрызков" — кусочек оттуда, кусочек отсюда — кое-что интересно, функция как объект, прототипы, да — но полноценной реализации ни одной из концепций нет.

Поэтому в моем понимании ПХП более "серьезный" язык чем жабо-скрипт. Собственно, это и все что я пытался сказать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[15]: The future of programming languages by Хейлсберг
От: Lloyd Россия  
Дата: 29.10.08 07:51
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>$name есть и не только в PHP. В том же Nemerle еше и ..$names есть. Да и маловато на мой взгляд одной "удобности" для зачисления языка в список интересных. Хейльсберг озвучил главные направления (по его мнению) развития программирования. декларативизация и параллелизм. По его же мнению средствами воплощения этих идей в будни мэйнстнима являются функциональный подход, DSL-и (причем и встроенные в язык DSL-и) и метапрограммирование.

VD>Что тут может предложить ПХП я ума не могу приложить. $-тотация в строках — это конечно DSL, но на шаг в развитии языкостроения это явно не тянет.

Казалось бы, причем тут javascript?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[13]: The future of programming languages by Хейлсберг
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.10.08 09:47
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Тебя стало сложно понимать. Делегат создпется по сигнатуре метода, но тип делегата определяешь сам Хочешь Func<...> а хочешь Функ<...>.

S>Типы этих делегатов разные, но запихнуть в них можно методы с одинаковыми сигнатурами.
S>Каково же твое предложение? Как сопоставить определенному делегату набор нужных функций? И насколько тогда такой делегат будет нужен?

Предложение очень простое. Отказаться от делегатов (вообще). Оставить их для обратной совместимости, а использовать функциональный тип. Это почти тоже что делегат, только его не надо описывать заранее (а значит не будет не совместимостей), и его экземпляры не смогут содержать списки (смогут ссылаться только на одну функцию). Скажем вместо делегата:
delegate R MyDelegate<T1, R>(T1 arg1);
delegate R Func<T1, R>(T1 arg1);
...
def f1 : Func<int, bool>   = ...;
def f2 : MyDelegate<int, bool>   = f1; // Ошибка! Func и MyDelegate не совместимы!

def f3 : Func<string, int> = ...;

Можно будет использовать функциональный тип:
def f1 : int -> bool   = ...;
def f2 : int -> bool   = f2; // ОК!
def f3 : string -> int = ...;
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: The future of programming languages by Хейлсберг
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.10.08 11:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Serginio1, Вы писали:


S>>Тебя стало сложно понимать. Делегат создпется по сигнатуре метода, но тип делегата определяешь сам Хочешь Func<...> а хочешь Функ<...>.

S>>Типы этих делегатов разные, но запихнуть в них можно методы с одинаковыми сигнатурами.
S>>Каково же твое предложение? Как сопоставить определенному делегату набор нужных функций? И насколько тогда такой делегат будет нужен?

VD>Предложение очень простое. Отказаться от делегатов (вообще). Оставить их для обратной совместимости, а использовать функциональный тип. Это почти тоже что делегат, только его не надо описывать заранее (а значит не будет не совместимостей), и его экземпляры не смогут содержать списки (смогут ссылаться только на одну функцию). Скажем вместо делегата:

VD>
VD>delegate R MyDelegate<T1, R>(T1 arg1);
VD>delegate R Func<T1, R>(T1 arg1);
VD>...
VD>def f1 : Func<int, bool>   = ...;
VD>def f2 : MyDelegate<int, bool>   = f1; // Ошибка! Func и MyDelegate не совместимы!

VD>def f3 : Func<string, int> = ...;
VD>

VD>Можно будет использовать функциональный тип:
VD>
VD>def f1 : int -> bool   = ...;
VD>def f2 : int -> bool   = f2; // ОК!
VD>def f3 : string -> int = ...;
VD>

Спасибо за ответ
Это все понятно. Как это будет реализовано на низком уровне. Делегат Это класс. Кстати и сейчас можно было бы ввести атрибут для пометки не мультикаст делегата, невозможности наследования от него MulticastDelegate Что бы при Combine и Remove вылетало исключение. Можно конечно ввести автоматический кастинг или ввести универсальную функцию приведения через CreateDelegate. Но вот вопрос по низлежащим классам. Понятно, что функциональные типы это более удобная надстройка. И по этому поводу у меня никаких вопросов нет.
и солнце б утром не вставало, когда бы не было меня
Re[20]: The future of programming languages by Хейлсберг
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 29.10.08 15:09
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, kochetkov.vladimir, Вы писали:


KV>>Ну во-первых, javascript гибридный язык, коим php только собирается начинать становиться в последних альфах. Во-вторых, ООП через прототипирование я бы не назвал неполноценным, скорее альтернативным. В третьих, это весьма и весьма гибкий язык.


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

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.