argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Новите благинки в програмините езици добре ли са за вас ? или според вас ?  (Прочетена 3434 пъти)

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

Тази тема не е насочена към нищо свързано с Микрософт.
Wse pak e fakt che poradi izlizaneto na C# i blyskaneto v nego na novi Blaginki , Blaginki idvashti ot scriptovite ezici tova promenq ezicite koito haresvame ili obichame kakvo mislite vie za tova ? dali blaginkite sa polezni ili vredni ? haresvat li vi ili ne ? ako da zashto ako ne zasho ?
Govorq za neshta kato LINQ na C# 3.0 koito shte byde i v koito shte moje da napishesh neshto takova:
var namesAndOrderIDs =
   from c in customers
   where c.Country == "Denmark"
   from o in c.Orders
   where o.OrderDate.Year == 2005
   select new { c.Name, o.OrderID };

ili
var custTotalOrders =
   from c in customers
   join o in orders on c.CustomerID equals o.CustomerID into co
   select new { c.Name, TotalOrders = co.Sum(o => o.Total) };
?
otdeno i za tip "var" koito prosto sam namira dadenoto neshto ot kakyv tip e ?
Ta dori GENERICS !
da generics sa udobni shte kaje Stilgar pisehsh na 1 miasto ispestqvash 200 cast-a
SUPER !
obache kakvo stava kogato podavame generics mejdu funkcii ?
kakvo stava kogato iskame edna funkciq da prieme razlichni tipizirani kolekcii
naprimer
public void <T> haxor(List<T> a)  { }  // moje da barkam sintaksisa
a koga se pishe
public void haxor(List<?> a)
a moje bi
public void <T> haxor(List<? extends T>  a,T b)
tezi neshta ne uslojnqvat li neshtata
da ne pitam kakvo stava s raw type-a t.e. ako napisha
public void  haxor(List a) // koeto veche e NEPREPORACHITELNO vapreki che Stilgar bi kazal ako vi kefi taka si go polzvai taka.
drugo primerno v Java 1.6 shte ima integrirana v samata virtualna mashina DB. ? kakvo mislite za ideqta ?
otdeno PODOBNI Blaginki karat i drugi ezici da bydat "prestrukturirani i promeneni"
sigurno povecheto ot vas sa chuli che 2008 ili i 9-ta beshe izliza nova versiq na C++. YEAH
tam shte ima Generics tip String i etc . ( tai kato Generics bili po dobri ot templates )

Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

1) Има галактическа разлика между "благинки" в езиците за програмиране и "благинки", които се предоставят от допълнителен фреймуърк (Например езикът Java и Java Framework API са две много различни неща, както и C# и съответно .NET Framework API).

2) Типът данни VARIANT е познат от десетилетия и мисля, че за пръв път влиза в употреба при реализацията на езика BASIC, а в съвременните езици той (VARIANT) макар и рядко се среща в Delphi, а на ниво Windows API типът VARIANT се представя като OLEVariant (OLE - Object Linking and Embedding). Едно от нововъведенията във VB.NET v1 и v2 беше, че типът VARIANT вече го няма! Източниците за данни стават все по-абстрактни а самите данни се представят със все по-сложни структури, така че един "обобщаващ" тип, който сам знае какъв тип данни съдържа в себе си всъщност е много удобна "благинка".

В термините на Дзен будизма, бих могъл да направя следната аналогия:

Като ученик по бойни изкуства за мен ударът бе просто удар, а блокът - просто блок!
Като учител по бойни изкуства за мен ударът вече не е удар, а блокът вече не е блок!
Като майстор на бойните изкуства за мен ударът отново е удар, а блокът - отново блок!

Заменете "бойни изкуства" с "програмиране", "удар" с "VARIANT" и махнете частта с блока - оказва се, че това е нормалният път на еволюцията.

3) GENERICS са полезни, тъй като още по време на компилация излизат грешните каст-вания на обекти. Ако си понапънеш мозъка ще измислиш начин да измамиш GENERICS и в колекция от предварително определен тип данни да вмъкнеш обект от тип, който няма нищо общо с обявения в декларацията на GENERIC колекцията, но целта не е да заобикаляме правилата, а да се възползваме от тях.

Не си задължен да използваш GENERICS нито в Java, нито в .NET базираните езици. Специално в .NET 2 има две пространства от имена за колекции - едните са нормални колекции (System.Collections), които просто представят множество от обекти (System.Object), а другият namespace (System.Collections.Generics) предоставя набор от колекции (класове), които представляват множество от строго типизирани обекти. Идеята е, че в над 90% от случаите се налага в колекциите да се държат обекти, които са представители на точно един конкретен клас, така че използването на GENERICS в над 90% от случаите е напълно обосновано.

4) Така нареченото Java DB всъщност е Apache Derby DB, което от своя страна е IBM Cloudscape DB. И не е част от езика, а част от Java Framework-а. Вместо да сваляш DB-то - то само идва при теб, което аз лично го намирам за удобно (друг е въпросът, че точно тази база данни леко понамирисва и аз лично предпочитам стар и чист Cloudscape, дори Apache Derby, но не и Java DB- лично мнение)!
« Последна редакция: 19.06.2006, 17:05:43 от Иван Давидов »
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

t.e. za teb tova sa dobre doshli neshta hubavo
zakvo togava izobshto da polzvame Java ili C# neka polzvame Groovy ili Ruby
gotinoto na Java e v tova che e "chista" lesno se vijda lesno se maintrainva vsichko e qsno i lesno nqma slojni neshta nqma < nqma char ******a nqma int &b i etc. nqma ref out mout bout tova sa neshta koito skoro shte si zaminat zashtoto shte stane IMPOSIBLE za poddarjane ot mnogo bozi kakto v momenta naprimer sa JavaScript neshtata tam primerno pravilata ne vajat vseki pishe kakto si iska nikoi neznae kvo pravi drugiq.

btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?
Активен

OpenBSD

  • Гост

Според мен много по-изчистено ми изглежда когато всичко е на един ред. Така че не виждам какво е ясното на аналогичния код в Джава. А и все едно в Джава няма както се изказваш "благинки"?
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

В Java problema e che samo blaginki ima ... i to s tovonove i sq kato slojat i tiq sha doidat mnogo v povehce ;>
Активен

VooDooMaN

  • Гост

Недей си мъчи главата с толкоз сложни работи ;).
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?

Не съм си блъскал главата дали единия е наследник на другия по простата причина, че това слабо ме интересува, поради няколко факта, а именно:

1) Занимавам се професионално с Java, а програмирането с .NET и C# ми е хоби.
2) Виж точка първа.
Активен

VooDooMaN

  • Гост

Я кажи, що мина от .NET на Java ;)?
Активен

Stilgar

  • Неактивен Неактивен
  • Публикации: 843

btw tva s 2te kolekcii ot imena me ozadachi
znachi ako si napravq metod naprimer s
System.Collection.ArrayList ? predpolagam ima takyv tip to nqma da moga da go vikam s
System.Collection.Generics.ArrayList i obrantoto taka li ?

kvo znachi da mojesh da go vikash
tva prosto sa razlichni tipove
ArrayList != ArrayList<> (da ne govorim che ArrayList<> se kazva prosto List<> no Queue naprimer si e Queue<>)

A inache vsichko e iasno
ako ne sa arni novite raboti nikoi niama da gi polzva toest niama absolutno nikvo znachenie che sa tam
ako sa arni sa si arni i tva e
« Последна редакция: 19.06.2006, 19:15:20 от Stilgar »
Активен
"Човек винаги трябва да си прави background" - Lia

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

Я кажи, що мина от .NET на Java ;)?
Shtoto na .net pishat samo The Dark Side a Ivan iska da e Jedi :> za tova ipshe na Java ;>
ili shtoto ima povehce rabota :)
Активен

Jack Johnson

  • Неактивен Неактивен
  • Публикации: 704
  • Хора, пазете си здравето! То няма цена!

Я кажи, що мина от .NET на Java ;)?

Защото обичам да върша прости неща по сложния начин :)

Защо трябва да драгна и дропна едно дърво в Windows Forms, когато мога цял ден да си пиша функция за автоматично скролиране на дърво в SWING?

Защо да пиша един BMP Entity Bean цял ден, когато в .NET 2 мога да използвам автоматичните провайдъри?

Защо да пиша 7 тага в JSF, за да свърша това, което с ASP.NET мога да го свърша с едни таг?

Отговор: Защото ми плащат да го върша!

Всеки може да драгва и да дропва, всеки може да кликва два пъти върйу съответния компонент и да пише код в обработчика не default събитието.

Ами ако великите програмисти на .NET опрат до услугите на notepad и конзолните компилатори, тогава какво става? Нека никой не се обижда, но до сега съм видял само двама души, които могат да пишат C# код в notepad и да го компилират до DLL Assembly. Единият от тези програмисти съм (бях) аз, ако познавате и други - споделете!

Познаването на една хубава среда не те прави ДОБЪР програмист, а МЪРЗЕЛИВ програмист, а с мързела лесно се свиква! За мързел не плащат или по-точно плащат, но не толкова, колкото за работа!

Вече става късно, ще си развивам постулатите друг път!

JOKE, а защо мислиш, че ти стоиш от правилната страна на силата? Сигурен ли си, че не си точно Dark Sider? Може би точно .NET се опитва да възстанови баланса...
« Последна редакция: 21.06.2006, 14:48:22 от Иван Давидов »
Активен

Stilgar

  • Неактивен Неактивен
  • Публикации: 843

.NET e ot Dark Side be
podchiniava se na Emperor Bill koito upravliava Imperiata

az puk pisha na .NET shtoto NAI-MRAZIA DA RABOTIA! (na 2ro miasto mrazia da mislia)
Активен
"Човек винаги трябва да си прави background" - Lia

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

Я кажи, що мина от .NET на Java ;)?

Защото обичам да върша прости неща по сложния начин :)

Защо трябва да драгна и дропна едно дърво в Windows Forms, когато мога цял ден да си пиша функция за автоматично скролиране на дърво в SWING?

Защо да пиша един BMP Entity Bena цял ден, когато в .NET 2 мога да използвам автоматичните провайдъри?

Защо да пиша 7 тага в JSF, за да свърша това, което с ASP.NET мога да го свърша с едни таг?

Отговор: Защото ми плащат да го върша!

Всеки може да драгва и да дропва, всеки може да кликва два пъти върйу съответния компонент и да пише код в обработчика не default събитието.

Ами ако великите програмисти на .NET опрат до услугите на notepad и конзолните компилатори, тогава какво става? Нека никой не се обижда, но до сега съм видял само двама души, които могат да пишат C# код в notepad и да го компилират до DLL Assembly. Единият от тези програмисти съм (бях) аз, ако познавате и други - споделете!

Познаването на една хубава среда не те прави ДОБЪР програмист, а МЪРЗЕЛИВ програмист, а с мързела лесно се свиква! За мързел не плащат или по-точно плащат, но не толкова, колкото за работа!

Вече става късно, ще си развивам постулатите друг път!

JOKE, а защо мислиш, че ти стоиш от правилната страна на силата? Сигурен ли си, че не си точно Dark Sider? Може би точно .NET се опитва да възстанови баланса...
аз пиша на java щото ме кефи :П
Активен

Райчо Мукелов

  • Неактивен Неактивен
  • Публикации: 486
  • I snuggle with subwoofers
    • HULTIG - Human Language Technlogy and Bioinformatics Interest Group

Аз пък на Python, пак щото ме кефи
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

Аз пък на Python, пак щото ме кефи
obqsni vryzkata mejdu Python i RUBY, 4e ush imalo neshto obshto ama i 2ta sa mi nepoznati i mi e interesno prsoto
Активен

Райчо Мукелов

  • Неактивен Неактивен
  • Публикации: 486
  • I snuggle with subwoofers
    • HULTIG - Human Language Technlogy and Bioinformatics Interest Group

Аз пък на Python, пак щото ме кефи
obqsni vryzkata mejdu Python i RUBY, 4e ush imalo neshto obshto ama i 2ta sa mi nepoznati i mi e interesno prsoto
I az tva Ruby ne go znam za kvo stava duma.
Izchezvam da gledam Mexico vs. Portugal
Активен

OpenBSD

  • Гост

Ruby ist eine objektorientierte, interpretierte Programmiersprache. Sie hat ihre Wurzeln in Perl, Smalltalk, Python, LISP, Bash und CLU.
Това ми прилича на поредния скриптов ЕП. Нищо чудно в скоро време да се появи и някой, който да писне що не е включен в ЕП за КСИ. Това пак ме наведе на идеята да събера Видндоус и Линукс, и да направя ОС Бозоус.
Активен

JOKe

  • Неактивен Неактивен
  • Публикации: 2656
  • Code or Die

всъщност Ruby е доста добър скриптов език може би наи добрия в момента
Ruby On Rails го водят единствената добра Open Source алтернатива на J2EE и .net
Активен