Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Pascal sv C++ 
:(
    Опции темы
Mayk
Дата 20.12.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 2
Всего: 134



Цитата(Lazin @  20.12.2007,  16:26 Найти цитируемый пост)
пару месяцев назад читал статью, о тенденциях в программировании, в частности речь шла о том какие системы программирования как развиваются..
там говорилось о том, что количество проектов использующих Python, Lua, ruby и т.д. растет быстрее всего, чуть медленнее Java - .NET, С++ занимает свою нишу (что-то около 20%), ну а Паскаль скоро будут помнить только старожилы, так как он займет свое почетное место среди таких языков как Cobol, Fortran и пр... 
ps
возможно он сохранится только в Российских ВУЗах

чисто циферки. Некоторая статистика по freshmeat [собираеццо не регулярно].
Цитата

  pastdate  |  nowdate   | language | past | now  | delta 
------------+------------+----------+------+------+-------
 2007-05-25 | 2007-09-19 | C        | 8650 | 8825 |   175
 2007-05-25 | 2007-10-10 | C        | 8650 | 8848 |   198
 2007-05-25 | 2007-11-19 | C        | 8650 | 8854 |   204
 2007-05-25 | 2007-09-19 | C++      | 4683 | 4833 |   150
 2007-05-25 | 2007-10-10 | C++      | 4683 | 4869 |   186
 2007-05-25 | 2007-11-19 | C++      | 4683 | 4877 |   194
 2007-05-25 | 2007-09-19 | Java     | 5575 | 5779 |   204
 2007-05-25 | 2007-10-10 | Java     | 5575 | 5813 |   238
 2007-05-25 | 2007-11-19 | Java     | 5575 | 5833 |   258
 2007-05-25 | 2007-09-19 | Object Pascal |   28 |   29 |     1
 2007-05-25 | 2007-10-10 | Object Pascal |   28 |   29 |     1
 2007-05-25 | 2007-11-19 | Object Pascal |   28 |   28 |     0
 2007-05-25 | 2007-09-19 | Pascal   |   59 |   59 |     0
 2007-05-25 | 2007-10-10 | Pascal   |   59 |   59 |     0
 2007-05-25 | 2007-11-19 | Pascal   |   59 |   57 |    -2
 2007-05-25 | 2007-09-19 | Python   | 2797 | 2904 |   107
 2007-05-25 | 2007-10-10 | Python   | 2797 | 2918 |   121
 2007-05-25 | 2007-11-19 | Python   | 2797 | 2942 |   145

pascal на fm'е действительно не очень живой.

Это сообщение отредактировал(а) Mayk - 20.12.2007, 13:17


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Fiyanov
Дата 18.3.2008, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 255
Регистрация: 19.4.2007
Где: Kazakhstan->Te mirtau

Репутация: нет
Всего: 2



Delphi умирает уже не первую пятилетку господа. Смотрите правде в глаза. Он всегда отставал от VS. Но признаков смерти никода не было. Более того этот самый Delphi (сейчас это Developer Studio) вытащил Борланд из долговой ямы. То есть его покупают. Вот уже 2007й вышел. Правда не в полной редакции но всё же. Не думаю что делфи когда нибудь умрёт. Это глупость. Каждый день появляються новые тихнологии с новыми языками и находяться люди которые их осваивают и дают им жизнь. Делфи же уже старичёк, у него хватает фанатов. Всё зависит от мастерства!
PM MAIL ICQ   Вверх
Любитель
Дата 31.3.2008, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(archimed7592 @  18.12.2007,  12:21 Найти цитируемый пост)
В дотнете, по сути, никакой разницы между интерфейсом и дженириком нет.

Ну-ну! Это совершенно разные вещи. Дженерик (в дотнет) - это особое понятие на уровне рантайма (ВМ), что кстати не отменяет шаблонов и прочих механизмов встроенной кодогенерации (всяких там макросов...) со стороны конкретного языка. Физический класс инстанцируется при первом использовании дженерика. Для reference-типов - один (ну там мож где тип тупо храниться - дотнетчики поправят  smile ), для value-типов - по классу для каждого (всмысле заюзали дженерик с value-типом - сгенерился класс). Причём тут интерфейсы?

Дженерики из гуд - для языков, имеющих возможность создания типа на лету (читай - имеющих ВМ/интерпретируемых/etc.).

Что касается питона - вот тоже давно нравился и нравится, но вот юзать - совсем не юзаю (за исключением waf-а smile ). Почему? А фиг его почему... Прикладной уровень питона не знаю совсем  smile 

Это сообщение отредактировал(а) Любитель - 31.3.2008, 03:39


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 31.3.2008, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Любитель @  31.3.2008,  03:38 Найти цитируемый пост)
Причём тут интерфейсы?

При том, что при написании дженерика ты должен перечислить все интерфейсы, которые тебе необходимы(или получишь объект с которым ничего не сможешь сделать - даже необходимость делать new ты должен указать явно). Др. словами ничего не мешает написать не менее гибкий код просто напросто используя интерфейсы.
А если метод не интерфейсный(ну не догадался разработчик в интерфейс засунуть), то от дженерика пользы столько же сколько от копипаста smile.

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

Добавлено через 3 минуты и 16 секунд
Цитата(Любитель @  31.3.2008,  03:38 Найти цитируемый пост)
Ну-ну! Это совершенно разные вещи.

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


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Lazin
Дата 31.3.2008, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



duck typing рулит  smile , никаких дженериков и шаблонов не нужно 
PM MAIL Skype GTalk   Вверх
Любитель
Дата 1.4.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Ну да - всегда можно обойтись боксингом/анбоксингом + интерфейсами + кастингами. Страдает производительность.

Цитата(archimed7592 @  31.3.2008,  04:17 Найти цитируемый пост)
Так что не надо "ля-ля" про инстанцирование. Если бы оно было, то ничего не мешало бы использовать рефлексию и сделать перечисление интерфейсов лишь как вспомогательный инструмент в случае дженерика.

Протесть дженерик-коллекцию интов и обычную. Увидишь разницу.

Цитата(archimed7592 @  31.3.2008,  04:17 Найти цитируемый пост)
Та же ситуация, насколько я понимаю, и в Java.

А тут вроде наоброт - гораздо хуже. Дженерики - лишь мелкое удобство.


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 1.4.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(Любитель @  1.4.2008,  15:47 Найти цитируемый пост)
Протесть дженерик-коллекцию интов и обычную. Увидишь разницу.

А где разница то?
1. В синтаксисе
2. В подсказках IDE(будет показывать, что аргумент ф-ции не object, а int).
3. В просто смешной защите от дурака(нельзя будет передать ничего, кроме int). Но здесь, если отвлечься от конкретно коллекций и перейти к чему-нибудь, что будет пользоваться не только operator=, к примеру, выставлять в требованиях некоторый интерфейс дабы с обобщёнными объектами можно было бы как-то взаимодействовать, то переписав код на интерфейсы ты получишь ту же самую "защиту от дурака", которая будет выражаться в ругани компилятора при попытке использовать объект, который не поддерживает требуемый интерфейс.

Вывод: это лишь синтаксический сахар. Вполне возможно, что in a nutshell это нечто большее, но предоставляемый ф-ционал - лишь сахар, пудра, пыль.

Примеру ради: как не используя рефлексии реализовать аналог следующего плюсового предиката?
Код

template< class T >
struct LessByValue
    :   public std::binary_function< const T &, const T &, bool >
{
    bool operator()(const T &lhs, const T &rhs) const
    { return lhs.value < rhs.value; }
};

struct KeyValuePair1
{
    int key;
    std::string value;
};

struct KeyValuePair2
{
    std::size_t key;
    std::vector< char> value;
};

std::vector< KeyValuePair1 > v1;
std::vector< KeyValuePair2 > v2;
// ...
std::sort(v1.begin(), v1.end(), LessByValue< KeyValuePair1 >());
std::sort(v2.begin(), v2.end(), LessByValue< KeyValuePair2 >());


Сразу приведу пример шарповых классов:
Код

struct KeyValuePair1
{
    public int key;
    public string value;
};

struct KeyValuePair2
{
    public uint key;
    public char[] value;
};

Этим кодом я хочу подчеркнуть, что оба типа(KeyValuePair1 и 2) НЕ имеют общего интерфейса предоставляющего доступ к value(и не могут иметь, если конечно value не превратить в банальный object - от чего убегали к тому и придём).

Это сообщение отредактировал(а) archimed7592 - 1.4.2008, 21:08


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
mr.DUDA
Дата 4.4.2008, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 4
Всего: 232



archimed7592, можно конечно и так:
Код
using System;
using System.Collections.Generic;

// в дотнете нет реализации по умолчанию для сравнения массивов или списков
public class ComparableList<T> : List<T>, IComparable<ComparableList<T>>
    where T : IComparable<T>
{
    public int CompareTo(ComparableList<T> other)
    {
        for (int i = 0; i < Count; i++)
        {
            int ret = this[i].CompareTo(other[i]);
            if (ret != 0)
                return ret;
        }
        return 0;
    }
}

// общий интерфейс
public class KeyValuePair<TKey, TValue>
{
    public TKey Key;
    public TValue Value;
}

// наследники
public class KeyValuePair1 : KeyValuePair<int, string> {}
public class KeyValuePair2 : KeyValuePair<uint, ComparableList<char>> { }

// "предикат"
class LessByValue<T, TKey, TValue> : IComparer<T>
    where T : KeyValuePair<TKey, TValue>
    where TValue : IComparable<TValue>
{
    public int Compare(T x, T y)
    {
        return x.Value.CompareTo(y.Value);
    }
}

class Program
{
    static void Main()
    {
        List<KeyValuePair1> v1 = new List<KeyValuePair1>();
        List<KeyValuePair2> v2 = new List<KeyValuePair2>();

        v1.Sort(new LessByValue<KeyValuePair1, int, string>());
        v2.Sort(new LessByValue<KeyValuePair2, uint, ComparableList<char>>());
    }
}


В этом случае есть общий интерфейс. Код громоздкий, сам знаю  smile 

З.Ы. в дженериках вывод типа хромает, но мелкомягкие вроде собираются что-то с этим делать (Рихтер упоминал про это).

З.Ы(2) в холиварах на винграде - как на военных заводах времён перестройки: что ни попробуют собирать, но вместо кастрюль и сковородок выходит автомат Калашникова. Так и здесь - какой язык ни начни сравнивать с другим, хоть OCaml с Haskel - всё равно в итоге перемываем кости .NET/C#... Про паскаль и С++ забыли уже. smile  smile  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 4.4.2008, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 2
Всего: 93



Цитата(mr.DUDA @  4.4.2008,  08:41 Найти цитируемый пост)
archimed7592, можно конечно и так:
[...]
В этом случае есть общий интерфейс.

Ну дык я то просил без общего интерфейса smile. Могу уточнить: классы KeyValuePair1/2 ты никак модифицировать нельзя(пусть они библиотечные, к примеру)...

Цитата(mr.DUDA @  4.4.2008,  08:41 Найти цитируемый пост)
всё равно в итоге перемываем кости .NET/C#

 smile 


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Любитель
Дата 4.4.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Ещё раз - дженерики это не механизм кодогенерации! Это возможность рантайма.

Насчёт "потесть" - я про поизводительность. Непосредственная работа с интами или постоянный боксинг/анбоксинг.

Добавлено через 1 минуту и 48 секунд
Цитата(mr.DUDA @  4.4.2008,  08:41 Найти цитируемый пост)
Про паскаль и С++ забыли уже

Йа хде?  smile 


--------------------
PM MAIL ICQ Skype   Вверх
Akella
Дата 21.4.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 1
Всего: 329



Цитата(Fiyanov @  18.3.2008,  08:25 Найти цитируемый пост)
Всё зависит от мастерства! 

 smile 
PM MAIL   Вверх
Beltar
Дата 5.5.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Собственно выпустив C# и Java несостоятельность Си++ уже признали. Остается только подождать, пока в Паскале не уберут запрет на операции над указателями без приведения к целому, после этого Си++ можно выносить. smile Если еще и шаблоны ввести, то точно у Си++ никаких плюсов уже не будет. Конечно MS будет сопротивляться, но это ей не поможет. smile


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Alexeis
Дата 5.5.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Beltar @  5.5.2008,  14:57 Найти цитируемый пост)
Остается только подождать, пока в Паскале не уберут запрет на операции над указателями без приведения к целому, после этого Си++ можно выносить.

  Операции над указателями типа PChar разрешены, так легче переносить код из C++. 

Цитата(Beltar @  5.5.2008,  14:57 Найти цитируемый пост)
Если еще и шаблоны ввести, то точно у Си++ никаких плюсов уже не будет. Конечно MS будет сопротивляться, но это ей не поможет.

  Delphi активно обменивается фичами с C#, а не С++, потому шаблонов ждать не стоит. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 5.5.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(Beltar @  5.5.2008,  15:57 Найти цитируемый пост)
Собственно выпустив C# и Java несостоятельность Си++ уже признали. 

с каких это пор, у них совершенно разные области применения  smile учи матчасть smile 

Цитата(Beltar @  5.5.2008,  15:57 Найти цитируемый пост)
Паскале не уберут запрет на операции над указателями без приведения к целому, после этого Си++ можно выносить

Паскаль? А, это-то, что пылится на одной полке с Cobol-ом? smile   Жуть, на нем кто-то еще пишет? smile 
Так что, там еще и указатели нужно к целому приводить  smile  , так вот почему Borland никак не выпустит Delphi под 64х битную архитектуру, просто у дельфистов сразу все программы поломаются smile 

Цитата(Beltar @  5.5.2008,  15:57 Найти цитируемый пост)
Если еще и шаблоны ввести, то точно у Си++ никаких плюсов уже не будет. 

Вот именно "как", компилятор С++ на порядок(и вряд-ли на один smile ) сложнее паскалевского, "как" не получится, получится жалкая пародия smile 

Цитата(Beltar @  5.5.2008,  15:57 Найти цитируемый пост)
Конечно MS будет сопротивляться, но это ей не поможет.

а они тут причем? smile вообще язык С++ - свободный, он никому не принадлежит, есть его стандарт
язык паскаль - практически умер smile , есть много несовместимых между собой реализаций (free pascal, delphi мож чего еще), даже набора стандартных библиотек нет smile 

но паскалистам этого не объяснишь, так как:
Цитата(Beltar @  5.5.2008,  15:57 Найти цитируемый пост)
Дельфятники имеют тенденцию перебираться на что-то лучшее, потому и остаются на месте

даже когда это что-то лучшее осталось в прошлом smile 
PM MAIL Skype GTalk   Вверх
Beltar
Дата 5.5.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 2
Всего: 7



Цитата

даже когда это что-то лучшее осталось в прошлом 


Я конечно понимаю, что очень хочется верить, что последний вменяемый язык на земле исчезнет, но он по-прежнему продолжает развиваться, а вот C#-Builder благополучно накрылся ибо нефиг, раз Delphi .NET есть.

Цитата

а они тут причем? вообще язык С++ - свободный, он никому не принадлежит, есть его стандарт


Наличие или отсутствие стандартов, на Паскаль они вроде тоже были, глубоко и искренне пофигу, тем более, что язык для RAD избыточен для программирования контроллеров. Что включать в стандарт будем? Соответствуют-ли стандарту все плюсовые компиляторы еще вопрос.
Сделает кто-то Ada Studio сравнимую с Delphi и VS будут Аду массово использовать, нет значит не будут. Решают не столько качества языка сколько его поддержка крупной фирмой. Еще Fortran каким бы отстойным он по сравнению с европейским Алгол-60 ни был, в Америке цвел и пах, только из-за стараний IBM. Модула-2 может и лучше Паскаля, но где она сейчас? Только потому, что Borland не выпустила ее на рынок.
Совершенно стихийным было развитие Бейсика и современный VB это уже совсем др. язык. Куда более стихийным, чем у Паскаля, который ориентировался на Borland.

Цитата

Вот именно "как", компилятор С++ на порядок(и вряд-ли на один  ) сложнее паскалевского, "как" не получится, получится жалкая пародия


Даже если компилятор Паскаля будет работать в 10 раз медленнее, я бы не советовал гнуть пальцы по поводу короткого синтаксиса Си, т. к. первая же компиляция программки в 5000 строк просто сожрет все время, сэкономленное на наборе за все время создания программы. Так что каким местом сложность стала преимуществом мне непонятно.

Цитата

так вот почему Borland никак не выпустит Delphi под 64х битную архитектуру, просто у дельфистов сразу все программы поломаются 


Как и у сишников т. к. смещения по памяти типа адрес+4 могут стать некорректными. Причем скорее именно у сишников. Пасквилянт еще подумает перед тем, как извращаться. 

[quote]Жуть, на нем кто-то еще пишет?[quote]

Ну если вы не в курсе, то что я могу поделать. У меня вот знакомых пишущих на Си меньше, чем на Delphi.

Цитата

даже набора стандартных библиотек нет


Ну просто такую мелочь как класс стека (мне хватает для этого массива и Top:Integer) или отсутствовавший в VCL до Delphi 10 пустяковый компонентик иконки в трее при желании можно махом написать самому или всегда найти. smile Проблема блин. Очередь или сортировку сделать. Если сишники этого не могут без STL, то кто тогда Windows написал. Не делайте мне смешно. smile 
Не поймите меня превратно. Я ничего не имею против STL и даже за нее, меня всегда удивляло почему подобная мелочевка не идет в VCL (или по крайней мере я про нее не знаю). Но подобную мелочь всегда можно найти.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1394 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.