Re[11]: Почему C# не Немерле
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.11.08 22:01
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>http://tomasp.net/projects/fswebtools.aspx


Там написано, что используется продвинутый фшарповый аналог expression tree. Вобщем, получается эдакий struts с использованием синтаксиса F#.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[18]: Почему C# не Немерле
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.08 01:49
Оценка:
Здравствуйте, Sinclair, Вы писали:

ГВ>>Смотря, какая специфика. Кстати, а как это можно сделать средствами MVC?

S>Очень просто — поменять, к примеру, конфиг роутинга.

Например?

S>Фишка именно в том, что для генерации и парсинга применяется один и тот же набор правил.


Ну это как раз достижимо — генерировать URL-ы и парсить их по одним и тем же внешним правилам.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[22]: Почему C# не Немерле
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.08 01:52
Оценка:
Здравствуйте, Sinclair, Вы писали:

WF>>>А зачем тебе создавать объект-обработчик, если тебе надо только лишь создать URL (например, для вписания его в HTML)?


ГВ>>По идее, чтобы потом к этому объекту можно было обратиться по его "собственному" URL. Если я тебя правильно понял.

S>Нет. Никакого "собственного" URL у объекта нет. Экземпляр объекта-обработчика будет предоставлен фреймворком при разборе запроса. Рассчитывать на то, что объект, ссылку на который я отдаю в рамках некоторого респонса, доживет до следующего реквеста, в вебе нельзя.

Согласен, что можно и так поступать: создавать объект только при обращении по соответствующему ему URL (не путать с собственным URL объекта).
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[18]: Почему C# не Немерле
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.08 01:54
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ГВ>>Смотря, какая специфика. Кстати, а как это можно сделать средствами MVC?

AVK>Поскольку трансляция реально происходит в рантайме, то проблем там никаких.

Трансляция чего во что?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[19]: Почему C# не Немерле
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.11.08 04:34
Оценка: 1 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Например?

Я приводил пример. Когда вместо /beverages/2 используются /search.aspx?category=beverages&page=2
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[20]: Почему C# не Немерле
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.08 05:02
Оценка:
Здравствуйте, Sinclair, Вы писали:

ГВ>>Например?

S>Я приводил пример. Когда вместо /beverages/2 используются /search.aspx?category=beverages&page=2

Принципиальных препятствий опять таки не вижу. Никто же не заставляет генерировать именно URL в месте обращения на CSP-странице. Можно выталкивать какие-то промежуточные описания. А потом уже настраивать распознаватель.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[19]: Почему C# не Немерле
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.11.08 09:58
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Трансляция чего во что?


Написанного тобой выражения в url.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[21]: Почему C# не Немерле
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.11.08 10:48
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Принципиальных препятствий опять таки не вижу. Никто же не заставляет генерировать именно URL в месте обращения на CSP-странице. Можно выталкивать какие-то промежуточные описания. А потом уже настраивать распознаватель.
Про это я и говорил. Ок, вижу, моих знаний плюсов не хватило. (В скобках докопаюсь всё же до того, что я писал про невозможность воспроизвести функционал на дельфи . Впрочем, это неважно).

Давайте теперь проверим, у кого лучше диагностика ошибок (ради борьбы с которыми собственно всё и затевалось).

Предположим, у меня есть банальный код:
string s = Url::Helper(&MyController::Search, "Beverages", 2);

Теперь я беру и меняю сигнатуру метода MyController::Search на, скажем, такую:
void MyController::Search(string category, string nameMatch, int page);

Что мне скажет компилятор?

В шарпе компилятор говорит примерно следующее:

No overload for method Search takes 2 arguments

... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[22]: Почему C# не Немерле
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 19.11.08 04:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В шарпе компилятор говорит примерно следующее:

S>

S>No overload for method Search takes 2 arguments


C++ будет многословней раза в... В несколько. Но тоже возмутится. Будут ошибки несоответствия ожидаемой и действительной сигнатуры.

Чтобы не быть голословным, скомпилируй у себя вот это:

#include <string>

class X
{
  public:
    void method(int p, std::string v){}
};

class Url
{
public:

template<typename T, typename R, typename P>
static void bind(R (T::*method)(P), const char *, P p){}

template<typename T, typename R, typename P1, typename P2>
static void bind(R (T::*method)(P1, P2), const char *, P1 p1, P2 p2){}

};

void f()
{
  X x;
  Url::bind(&X::method, "abc", 1); // Здесь вызов предполагает сигнатуру void(int), а не void(int, string)
}


Студию можно взять любую, начиная с 2003-й.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[9]: Почему C# не Немерле
От: Klapaucius  
Дата: 25.11.08 16:23
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>я читал, что на F# можно изобразить "гражданские монады", имеющие эффект монад но при этом не взрывающие мозг.


А в чем отличие "гражданских" монад от военно-полевых?
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[9]: Почему C# не Немерле
От: Кэр  
Дата: 25.11.08 16:27
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>Плюс, готовится совершенно потрясающий F# web-фреймворк, с автоматической трансляцией F# в клиентский JavaScript и _синхронным_ стилем программирования AJAX-приложений, который эти "монады" задействует.


Вопрос — а зачем транслировать F# в JavaScript, если у нас уже есть .net run-time в браузере в виде silverlight 2.0?
Re[10]: Почему C# не Немерле
От: dr.Chaos Россия Украшения HandMade
Дата: 26.11.08 15:13
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Вопрос — а зачем транслировать F# в JavaScript, если у нас уже есть .net run-time в браузере в виде silverlight 2.0?


Это они у тру хаскеллистов скопировали из состава HSP HJavaScript и HJScript.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[10]: Почему C# не Немерле
От: dr.Chaos Россия Украшения HandMade
Дата: 26.11.08 15:14
Оценка:
Здравствуйте, Klapaucius, Вы писали:

G>>я читал, что на F# можно изобразить "гражданские монады", имеющие эффект монад но при этом не взрывающие мозг.


K>А в чем отличие "гражданских" монад от военно-полевых?


Есть мысль, что они хорошо законспирированны .
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[9]: Почему C# не Немерле
От: dr.Chaos Россия Украшения HandMade
Дата: 26.11.08 15:18
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>В F# есть очень прикольные штуки, вообще-то. Скажем, я читал, что на F# можно изобразить "гражданские монады", имеющие эффект монад но при этом не взрывающие мозг. Плюс, готовится совершенно потрясающий F# web-фреймворк, с автоматической трансляцией F# в клиентский JavaScript и _синхронным_ стилем программирования AJAX-приложений, который эти "монады" задействует.


На Хаскелле уже есть такой фреймворк — Haskell Server Pages называется и трансляция в клиентский JavaScript там есть.
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[11]: Почему C# не Немерле
От: Klapaucius  
Дата: 26.11.08 17:02
Оценка:
Здравствуйте, dr.Chaos, Вы писали:

K>>А в чем отличие "гражданских" монад от военно-полевых?

DC>Есть мысль, что они хорошо законспирированны .

А-а. Монады работают под прикрытием.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[12]: Почему C# не Немерле
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.11.08 19:13
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>А-а. Монады работают под прикрытием.


Тут уже как то кое кто уже демонстрировал, что, в принципе, монады можно найти практически во всем. Ну, типа, как паттерн MVC.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[14]: Почему C# не Немерле
От: vdimas Россия  
Дата: 27.11.08 10:16
Оценка:
Здравствуйте, Sinclair, Вы писали:


S>Да, вижу. Я не понимаю, каким образом компилятор С++ сможет извлечь информацию о вызове метода из вызова метода и вместо выполнения вызова отдать эту информацию в некий фреймворк.


bind, function<>, а так же сахар boost::lambda и т.д.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[15]: Почему C# не Немерле
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.11.08 11:13
Оценка:
Здравствуйте, vdimas, Вы писали:
V>bind, function<>, а так же сахар boost::lambda и т.д.
Да, мне уже показали. В принципе, оно даже работает, хоть и с несколько менее очевидным error reporting.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Почему C# не Немерле
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 27.11.08 13:53
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


G>>http://tomasp.net/projects/fswebtools.aspx


AVK>Там написано, что используется продвинутый фшарповый аналог expression tree. Вобщем, получается эдакий struts с использованием синтаксиса F#.



Там используются:
1) quotations (те же expression tree но шире) для трансляции кода в JS
2) sequences (те же монады, но для простых смертных) для смешанного кода client/server
Re[11]: Почему C# не Немерле
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 27.11.08 14:15
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>>> Плюс, готовится совершенно потрясающий F# web-фреймворк, с автоматической трансляцией F# в клиентский JavaScript

G>http://tomasp.net/projects/fswebtools.aspx

По всей видимости этот проект только концепт,
последняя доступная версия от 1 Марта 2008 собирается самым древним доступным F#.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.