Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > почему у .NET нет будущего?


Автор: Aurus 20.8.2005, 18:28
Пива всем!

Вот сам не знаю чем мне нравится .NET, может название красивое)) хммм.... вообщем я сам только что за си шарп сел, реально ещё ничего не создавал.

Но вот начал изучать этот си шарп и уже кое-что мне не понравилось...- я просто возмущен!!! smile этой "дерьмовой" инициализацией массива!!! - кто только так придумал инициализировать массив!!! - ему в голову гвоздь забить надо!!! smile

Код

int[] myIntArray = new int[5] {2,4,6,8,10}
int[] myIntArray = {2,4,6,8,10}


На Си куда красивее:
Код

int first[5] = {1,2,3,4,5}


Они там в мелкософте совсем что-то.... не только хотят денег загрести, ещё хотят что-бы все программисты перестраивали свои мозги под них! нет ну я просто возмущен.

Ну это ладно... мелочи так сказать smile

Я что хотел то... - вот статью нашел - http://www.slackware.ru/article.ghtml?ID=544
что скажите?

Автор: Че Гевара 20.8.2005, 18:40
Когда данная вещь была впервые опубликована в декабре 2004, Юкихиро Матцумото (создатель Ruby) прислал фотографию своего текущего... ммм... состояния:
http://www.rubyist.net/~matz/images/matz-beard.jpg

Так что у Ruby будущее есть smile

- Команданте

Автор: srd 20.8.2005, 18:54
Aurus
Слабо в Си++ проинициализировать динамический массив одновременно с выделением памяти? smile

Автор: Mayk 20.8.2005, 20:06
Цитата(srd @ 20.8.2005, 22:54)
Слабо в Си++ проинициализировать динамический массив одновременно с выделением памяти?

Код

void* operator new(size_t s){
    return calloc(s,1);
}
void* operator new(size_t s, void* initWithThis){
    return memcpy(malloc(s), initWithThis, s);
}



smile

Автор: Kurt 20.8.2005, 20:12
Вышеуказанная статья уже обсуждалась на нашем форуме. По-моему, даже несколько раз.

Автор: srd 20.8.2005, 20:22
Mayk
Кто победит, конструктор или memcpy? smile
Код

#include <cstdlib>
#include <cstring>
#include <cstdio>

class A
{
public:
    A( void )
    {
        a = 0;
    }

    int a;
};

void* operator new(size_t s){    
    return calloc(s,1);    
}    
void* operator new(size_t s, void* initWithThis){    
    return memcpy(malloc(s), initWithThis, s);    
}

int main(void)
{
    A b[2];

    b[0].a = b[1].a = 1;    

    A *a = new(&b) A[2];

    printf("%d %d", a[0].a, a[1].a);
}


Автор: Domestic Cat 20.8.2005, 20:40
Не пойму чем не угодила инициализация массива и почему "кто .. так придумал ... ему в голову гвоздь забить надо!!!". Может это надо сделать с тем, кто задает глупые вопросы?

Автор: Fantasist 20.8.2005, 20:55
Цитата(Domestic @ 20.8.2005, 17:40)
Не пойму чем не угодила инициализация массива и почему "кто .. так придумал ... ему в голову гвоздь забить надо!!!". Может это надо сделать с тем, кто задает глупые вопросы?



Согласен. Нормальная инизиализация. Возмущение может только происходить от непонимания предмета.

К тому же совершенно не вижу чем такое выражение:
Код

int first[5] = {1,2,3,4,5}

красивее этого:
Код

int[] myIntArray = {2,4,6,8,10}


Цитата(Aurus @ 20.8.2005, 15:28)
хотят что-бы все программисты перестраивали свои мозги


А у программистов работа такая - мозги частенько перестраивать. smile Если они у кого-то не перестраиваются - извините, его проблемы. smile

Автор: Mayk 20.8.2005, 21:06
Цитата(srd @ 21.8.2005, 00:22)
Кто победит, конструктор или memcpy?

smile Точно, подловил. smile
Ну да ладно, тогда в документации пропиши что не надо такой конструктор объявлять smile Мол "Объявите class InitMe{}initMe; и инитетеся так:"
Код

class A{int a;A(){}; A(InitMe){a=0;}};

Неудобно, не спорю. Но по сравнению с c# struct/class и финализаторами(в них по некоторым данным к ссылкамам класса нельзя оперировать) это такая мелочь smile

Автор: Domestic Cat 20.8.2005, 21:31
Цитата(Mayk @ 20.8.2005, 12:06)
(в них по некоторым данным к ссылкамам класса нельзя оперировать)

smile

Автор: srd 21.8.2005, 16:15
Mayk
В любом случае я иногда жалею, что в Си++ нет такого удобного способа инициализировать динамические массивы, как в шарпе. Только перед шарпниками я в этом ни за что не признаюсь smile

Автор: Дрон 21.8.2005, 16:22
Цитата(srd @ 21.8.2005, 17:15)
В любом случае я иногда жалею, что в Си++ нет такого удобного способа инициализировать динамические массивы, как в шарпе. Только перед шарпниками я в этом ни за что не признаюсь smile

Да я на два фронта играю smile

А указанным способом пользуюсь постоянно!

Причём чаще всего для безымянных массивов при передаче параметров:
Код

SomeFunction ( new string[] { "abcd", "klmn", "oprst" } );

Автор: Hroft 23.8.2005, 10:51
А еще можно спросить уважаемого автора топика, как соотносится с платформой синтаксис одного из поддерживаемых языков, и почему из-за того, что ему что-то не нравится, у этого чего-то сразу должно пропасть будущее...
Кроме того, такой способ инициализации выделяемой памяти из Явы взят, как я думаю, и там нареканий не вызывает...

Автор: chipset 23.8.2005, 10:56
Репортим smile
М
 
Перенесено из C++:Общие вопросы руководствуясь здравым смыслом.

Автор: Cr@$h 24.8.2005, 00:01
Тема еще живая, как я вижу. В этом свете кто-нить из С++-программистов скажите тогда, пожалуйста, как создать в подпрограмме двумерную матрицу размерами MxN, где M и N являются входными параметрами?
void SubMat( int N, int M ) {
???
}

В .Net так запросто.

Автор: srd 24.8.2005, 05:38
Cr@$h, не уподобляйся Aurus. Твои "аргументы" такие же смешные, как и его, только с другой стороны баррикад. Все, кто хотел, уже сказали своё "фе" автору.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)