2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6  След.
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:15 
Аватара пользователя


22/09/09

1907
Xaositect в сообщении #867311 писал(а):
А вот любой код, который использует деление и поэтому может одинаково работать как с действительными, так и рациональными числами, не придется два раза переписывать.
Выше уже привел такой пример:
bin в сообщении #867305 писал(а):
Другое дело, что при вызовах удобнее использовать одно имя для разных типов. Вот пример из моей программы (D7):
Код:
procedure println (title : string; vector : shTIntVector); overload;
procedure println (title : string; vector : shTRealVector); overload;
procedure println (title : string; matrix : shTRealMatrix); overload;
println печатает целочисленный вектор, действительный вектор, матрицу.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:18 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Ну а реализация-то у них где?
с использованием generics может быть одна и та же реализация для целочисленных и действительных векторов, а Вам надо будет ее два раза переписать.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:25 
Аватара пользователя


22/09/09

1907
Xaositect в сообщении #867314 писал(а):
может быть одна и та же реализация для целочисленных и действительных векторов
Нет. Разный формат вывода. Для действительных количество цифр после запятой и т.д. Переписывание тут полезно - заставляет подумать о формате :-) И тестировать нужно 2 случая, а не один. Там, где слишком боятся дублирования, очень часто все важные случаи не видны для тестера.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:38 
Заслуженный участник


28/04/09
1933
У меня вот такая программа:
код: [ скачать ] [ спрятать ]
Используется синтаксис C++
#include <iostream>
#include <iomanip>
#include <vector>

template <typename T>
void Print(const std::vector<T>& v)
{
    std::cout << std::fixed << std::setprecision(6);
    std::cout << v.size() << std::endl;
    for (const T& e : v)
    {
        std::cout << e << " ";
    }
    std::cout << std::endl;
}

int main()
{
    std::vector<int> vi{1, 2, 3};
    std::vector<double> vd{4.0, 5.0};
   
    Print(vi);
    Print(vd);
}
Выводит:
Код:
3
1 2 3
2
4.000000 5.000000

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:39 
Заслуженный участник


27/04/09
28128
bin в сообщении #867282 писал(а):
Отвечу Вашими словами: "Вы же понимаете, что такого типа «аргументы» — не аргументы?" ;-)
Но вы-то предлагаете D7 как панацею. А я оговариваю, что кому один потолок достаточно высок, а кому — нет, и такие универсальные высказывания, пусть даже помеченные как ИМХО, лучше не писать. :roll: Запретить, конечно, никому не могу и не хочу.

bin в сообщении #867282 писал(а):
И тут Вы не про язык, а про реализацию VCL. Есть куча сторонних компонентов (гугл в помощь), можно и свои писать. Не проблема.
Одно дело когда в стандартной библиотеке есть достаточное для универсального языка (или не надо ему на это претендовать) вещей с самого начала, а другое дело — когда туда надо всё тащить, но тогда лучше Scheme, на ней минимализм как-то лучше смотрится.

Как уже заметили, одних WideString мало. Что вы будете делать с этими строками, когда их нормально не введёшь, не выведешь, не отобразишь? Такая поддержка уникода, конечно, была через какое-то время кем-то реализована (ко времени использования мной D7, ждать не пришлось), но врать, что это замечательно интегрировалось в IDE, как должно бы, не стану. Нет, надо было в объявлении формы править её класс вручную, и с IO, вроде, тоже были неполадки. (Вроде — потому что не хочу ставить назад D7, тот пакет, и вспоминать.)

Ещё в D7 нет никаких механизмов управления пакетами, кстати. Жууть. Некоторые надо было ставить с плясками.

bin в сообщении #867318 писал(а):
Разный формат вывода. Для действительных количество цифр после запятой и т.д.
Это тоже можно написать обобщённо. А если вывод нужен вообще всё время разный, есть строки формата. Которые тоже могут работать так, что будут поддерживать новые и новые типы.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 17:42 
Заслуженный участник
Аватара пользователя


06/10/08
6422
bin в сообщении #867318 писал(а):
Для действительных количество цифр после запятой и т.д.
В C++ можно установить формат вывода чисел для потока (stream), а не для данного конкретного акта вывода.

-- Сб май 24, 2014 18:47:04 --

bin в сообщении #866189 писал(а):
BTW у Питона много проблем...
Кстати, а перечислите основные проблемы питона по Вашему мнению, кроме динамической типизации.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 18:03 
Аватара пользователя


22/09/09

1907
Да. Пример тривиальный. Но факт, что про шаблоны было много критики. И в Паскале (стандартном) можно "экономить" на дублировании, нпр.:

Используется синтаксис Pascal
type
   IntOrRealVector = record
                                 case T:Boolean of
                                 false: (x: IntVector);
                                 true:  (y: RealVector);
                               end;
 


Но там такое без должного основания не рекомендовано. В этом принципиальная разница с С++.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 18:07 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Не помогает избавиться от дублирования, все равно придется либо для IntVector и RealVector функции писать, либо в каждой функции для IntOrRealVector писать if с двумя похожими вариантами.

-- Сб май 24, 2014 19:38:05 --

bin в сообщении #867326 писал(а):
Но факт, что про шаблоны было много критики.
Можно примеры критики шаблонов, которая относилась бы к самой идее обобщенного программирования, а не к проблемам шаблонов как текстовых преобразований или к их реализации в C++? Generics в Java и C# учитывают критику шаблонов в C++, они позволяют делать то же самое, но реализуются по другому.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение24.05.2014, 19:10 
Аватара пользователя


22/09/09

1907
arseniiv в сообщении #867320 писал(а):
Но вы-то предлагаете D7 как панацею. А я оговариваю, что кому один потолок достаточно высок, а кому — нет, и такие универсальные высказывания, пусть даже помеченные как ИМХО, лучше не писать.
Чем мои универсальные высказывания хуже Ваших универсальных? И Вы, и я можем высказать свое ИМХО как из личного опыта, так и на основе литературы, сетевых источников, мнений референтных коллег и т.д. Мы обсуждаем один из сложнейших вопросов CS, на который пока не найдено всеобщепризнанного ответа. И почему в таком случае "лучше не писать" ИМХО? Я понимаю, что будет смешно, если кто из нас начнет опровергать нечто общеизвестное, как в достославном письме в Микропроцессорные средства и ситемы автор настаивал, что есть не Basic, а наш русский Васик. Такое ИМХО действительно "лучше не писать", но у нас противоположная ситуация. Кому будет лучше, если я или Вы не выскажем свое ИМХО? Идеал, как известно, не достижим, и я предполагаю, что все упомянутые тут языки не идеальны. Мне лично интересно услышать чужие доводы и высказать свои. Чем это плохо?

ИМХО основная проблема современного ПО - низкая надежность. И тут дело не столько в разных потолках программистов, а в усредненном потолке. На любом языке можно написать хороший код, а можно очень плохой. Но разные языки предоставляют для этого разные возможности. Я вслед за многими критикую многие языки за то, что они предоставляют слишком широкие возможности для написания плохого ненадежного кода. (При этом, конечно, самые богатые возможности предоставляет ассемблер, но ведь я его не критикую! ;-) )Паскаль/ОО Паскаль/Дельфи менее гибкие, более строгие и менее сложные и, поэтому, ИМХО более надежные, чем С++ и многие другие. D7 лучшая ИМХО реализация Дельфи. Наверняка можно было бы сделать и лучше, в том числе и с учетом прозвучавшей тут критики. Жаль, что этого пока не сделано, но ИМХО есть надежда, что когда-то будет сделано. М.б. другой фирмой и под другим названием. Факт, что мода на С++ спала - значит, столь мощный и столь гибкий язык - не то, что нужно большинству программистов.

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

-- Сб май 24, 2014 19:57:36 --

Xaositect в сообщении #867328 писал(а):
Можно примеры критики шаблонов, которая относилась бы к самой идее обобщенного программирования, а не к проблемам шаблонов как текстовых преобразований или к их реализации в C++? Generics в Java и C# учитывают критику шаблонов в C++, они позволяют делать то же самое, но реализуются по другому.
Про С++ много сказано в http://en.wikipedia.org/wiki/Generic_pr ... advantages , про C#:
Цитата:
When compared with C++ templates, C# generics can provide enhanced safety, but also have somewhat limited capabilities.[39] For example, it is not possible to call arithmetic operators on a C# generic type.[40](http://en.wikipedia.org/wiki/C_Sharp_(p ... g_language) )
Но это детали. Идея шаблонов уходит корнями к таким языкам с препроцессорами, как ПЛ/1. Сколько помню, в этом языке была мания лаконичного кода. Можно было написать:
Код:
X=Y=Z
И что чему присваивается? Я сейчас уже не помню. ИМХО идея шаблонов очень привлекательна и должна развиваться, однако ей еще долго придется расти. Для каких-то задач шаблоны м.б. оправданы, но гораздо больше задач лучше решать без них. Так же как никто не возражает против ООП, GUI, например, программировать гораздо удобнее. Но до сих пор очень многие модули пишут без применения ООП. Поэтому языки чистого ООП ИМХО неоправданы.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение25.05.2014, 17:51 
Заслуженный участник
Аватара пользователя


06/10/08
6422
bin в сообщении #867338 писал(а):
ИМХО идея шаблонов очень привлекательна и должна развиваться, однако ей еще долго придется расти.
Она уже доросла. Многие широко распространенные языки высокого уровня со статической типизацией (C++, C#, Java, теперь уже и Delphi) у нас есть шаблоны или обобщенные типы(generics). Новые языки, разрабатываемые крупными компаниями или известными специалистами (D Александреску, Dart в Google, Hack в Facebook) включают в себя возможности обобщенного программирования. Это востребовано.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение26.05.2014, 00:32 
Аватара пользователя


22/09/09

1907
Xaositect
М.б. я отстал от жизни и слишком консервативен, но идея смотреть на поисковики и соц.сети (Google, Facebook) как на лидеров CS меня не вдохновляет. В своих сообщениях я часто говорю "гугл вам в помощь" в смысле поиска, но никогда не советую Go и "хром". Слишком уж любопытные продукты (т.е. продукты, проявляющие чрезмерное любопытство к ПК, на котором стоят и к хозяину этого ПК, его семейному положению, интересам, возможно, к доходам и расходам и т.д.) и сильный перекос в сторону web-технологий ;-) Мечта многих глобалистов - это заоблачные технологии, когда каждый черновик у каждого пользователя им виден и прозрачен, а у меня мечты более приземленные :D Нпр., мечтаю чтобы каждый самолет удачно приземлялся и по расписанию...
---
"Если у вас паранойя - это не значит, что за вами никто не следит" :-)
Если один Большой Брат видит тебя - это еще ничего, но как быть, если "старших" братьев слишком много? (С) ;-)

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение26.05.2014, 01:21 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Я сам не в восторге, но на факт, что в гугле много хороших специалистов, это не влияет. Кто платит, тот и музыку заказывает.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение26.05.2014, 03:43 
Аватара пользователя


22/09/09

1907
Xaositect в сообщении #867884 писал(а):
Кто платит, тот и музыку заказывает.
Вот именно: несколько лет назад один мой знакомый оказался на мели и вместо того, чтобы раздвигать горизонты науки в ведущем НИИ РАН, договорился в свободное от работы время жилищно-строительному кооперативу бухгалтерию написать, вскрыл кучу ошибок по начислению платежей на жильцов, когда одни (при равных) платили больше, а другие меньше. С ним быстро расторгли договор - не оправдал ожиданий тех, кто ему платил ;-)

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение26.05.2014, 13:13 


03/05/14
9
По поводу разработки новых языков программирования.
(Это моё личное мнение, пусть никто не обижается)

Сегодня уже 21 век. Стоимость разработки своего ПО для
бизнеса небольшая. Если сегодня бизнес не имеет своего
браузера и почтовой службы СПЕЦИАЛЬНО разработанного для
бизнеса (со СВОЕЙ системой шифрования, своими протоколами
обмена данными и т.д.), то бизнес просто ЛЕНИВЫЙ.
Каждый нормальный бизнес сегодня должен иметь свою собственную
ВНУТРЕННЮЮ (автономную) электронную платёжную систему и систему
оповещения об угрозах бизнесу.

Исполнительная власть целой страны - это масштабный бизнес. Она
должна иметь внутреннюю операционную систему и т.д.

Сегодня СТУДЕНТЫ готовы работать в домашних условиях в этом направлении.

Поэтому, те бизнесы, которые этого не делают - просто попадают в
международную "группу ленивых". Поэтому, если Вас обокрали хакеры
(потому что Вы скачали бесплатный браузер или Веб-сервер)
- то в этом виноваты Вы сами! И Большой Брат Вам в этом не поможет.
Это вопрос политический.
Иначе Большой Брат станет у Вас прислугой для ленивых!

Не будут инопланетяне промывать мозги хакерам.
Не будут инопланетяне промывать мозги курцам, алкоголикам и "народным" наркоманам.
Не будут инопланетяне бомжей на рынках воспитывать.

Это не время царя Соломона.

 Профиль  
                  
 
 Re: Проект(!) переработки JavaScript для обработки данных
Сообщение26.05.2014, 14:33 
Заслуженный участник


27/04/09
28128
int13h в сообщении #867964 писал(а):
Если сегодня бизнес не имеет своего
браузера и почтовой службы СПЕЦИАЛЬНО разработанного для
бизнеса (со СВОЕЙ системой шифрования, своими протоколами
обмена данными и т.д.), то бизнес просто ЛЕНИВЫЙ.
Нет, он просто здравомыслящий.

-- Пн май 26, 2014 17:33:52 --

А остальное вообще к чему написано?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 77 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group