Archief - [PROG][C#] verschillen tussen J# en C#

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SMa

Legacy Member
Ik heb het vandaag in men hoofd gekregen om over te schakelen van J# naar C#, en heb daar nog enkele vragen over.

Eerst en vooral:
Zijn er eigenlijk wel fundamentele verschillen tussen J# en C#? Is het dus wel nuttig om over te schakelen?
Beide zijn object-georienteerd en werken met het .NET Framework, dat vind ik al héél belangrijke gelijkenissen.
Ik heb er al naar gegoogled en het enige "verschil" dat ik kan vinden is de syntax. (wat eigenlijk heel beperkt is)

Kan iemand me een goed boek aanbevelen, ivm het overschakelen en de nieuwe mogelijkheden? Eventueel van java naar C# ipv J# naar C#.
Bij de syntax verlies ik nog het meeste tijd met de basiszaken, zoals bvb: .charAt(i) --> string :p
Blijkbaar wordt er bij C# veel meer met publieke velden gewerkt dan bij J#, en dus veel minder met accessoren en mutatoren.

MacK

Legacy Member
Bij C# wordt er met properties gewerkt. Dat zijn in essentie accessoren en mutatoren. Ze zien er zo uit:

Code:
public class MijnKlasse
{
      private int variabele;

      public int Variabele
      {
              get { return variabele; }
              set {
                 // hier kan je allerlei controles doorvoeren, if statements whatever..
                 variabele = value;      //value is een keyword! 
              }
      }
}

public class Test
{
       public static void Main(String[] args)
       {
              MijnKlasse obj = new MijnKlasse();
              obj.Variabele = 5;                                 // maakt gebruik van die set ' methode'. 
              Console.Writeline(obj.Variabele);         //idem maar nu get
       }
}

Verder heeft C# ook operator overloading, wat tof is. Zo is bij de klasse string de operator [] 'overrided' (hoe schrijf je dat? :s) en kan je de string behandelen als een array. Nifty!
Zo kan je dan een Vector3 klasse maken (meetkundige vector) en dan gewoon 2 vectors optellen met de + operator (indien correct overrided), waarbij je bij java al specifiek een methode moet gaan schrijven . (goed komt uiteindelijk op hetzelfde neer, maar het spaart je later toch wat schrijfwerk)

Het komt er op neer dat C# toch wel een aantal extra features heeft die , voor mij persoonlijk tenminste, toch wel de moeite waard zijn. Ik vergelijk wel met gewone java, want ik ken J# niet goed. Verder is voor C# een dijk van een IDE gratis beschikbaar!

Je verdere vragen laat ik over aan iemand anders..

killgore

Legacy Member
in j# heb je ook properties, om compatibel te blijven met .net framework.

Dat is alles iirc.

SMa

Legacy Member
Ik gebruik Visual Studio 2005 voor zowel J# als C#.

thx voor het codevoorbeeld
dat wordt oefenen en proberen :p ik heb blijkbaar nog 't een en 't ander te leren :D


:edit:
kheb nog een verschil gevonden: "out"
best wel handig
http://www.javacamp.org/javavscsharp/

Emerxill

Legacy Member
J# is volgens mij een taal die dient om Java developers naar .net te laten overstappen.
J# geeft de look-and-feel van programmeren in Java. Het maakt gebruik van de API van java 1.3 (of vroeger, wil er vanaf zijn).
Maar achter de schermen gedraagt de code zich als .net code en niet als Java code (IDL vs JVM).

C# is een volwaardige taal op zich, die ietwat gebaseerd is op Java.

Ice

Legacy Member
Das zoals mensen die een diploma Nederlands in Belgie gaan studeren en daarna in Nederland. Sure der zijn een paar minimale verschillen, maar is het het waard? Nope.

Dit is gewoon overstappen om te kunnen zeggen 'yeah baby yeah, ik kan J# en C#'. Als je echt iets wil bijleren, ga dan naar compleet andere taal? Pak Java (de echte versie, dus niet .NET en speel wat met Swing App Framework, JScript, ...) of Smalltalk (the mother of all) of leer wat scripten in TCL of ...

SMa

Legacy Member
Ik heb gekozen voor C# omdat we daar volgend schooljaar op verdergaan, ipv op J#.
(1ste jaar = J#, 2de jaar = C#)
Een 2de reden is natuurlijk het 'yeah yeah' effect ;)

En waarom zou ik Java leren als ik J# al ken? Die 2 zijn praktisch gelijk in syntax en werkwijze, wat de compiler doet kan me in wezen niets schelen. Ik zou dan beter C++ nemen fzo.


Nog een vraagje,
bestaat er bij C# zoiets als javadoc?

Emerxill

Legacy Member
SMa zei:
En waarom zou ik Java leren als ik J# al ken? Die 2 zijn praktisch gelijk in syntax en werkwijze, wat de compiler doet kan me in wezen niets schelen. Ik zou dan beter C++ nemen fzo.
Omdat ze bij Sun sinds J2SE 1.3 ook niet op hun lui krent hebben gezeten en er ondertussen heel wat veranderd is. Zeker sinds 1.5.

Voor de rest lijken Java en C# heel hard op elkaar, laten we zeggen dat de developers van beide kanten zich door elkaar laten inspireren ;)

Spaceman

Legacy Member
Er zijn meerdere fundamentele verschillen tussen C# en J#. J# is eigenlijk niet meer dan de Microsoft's implementatie van Java terwijl C# een "nieuwe" taal is gebaseerd op de C++ syntax. Deze talen zijn ontwikkeld als antwoord op Java van concurrent Sun.

In tegenstelling tot Java draait J# op het .NET Framework van Microsoft. Dat geldt ook voor C#. Het idee van het .NET framework is een overstap te maken naar component gebaseerd programmeren. Kort samengevat houdt component gebaseerd programmeren in dat verschillende componenten geprogrammeerd in verschillende talen allemaal kunnen herbruikt worden in een onderliggend framework. Zo zou je bijvoorbeeld klassen in J# kunnen herbruiken in een C# programma.

Component gebaseerd programmeren heeft dus kennelijk zijn voordelen en C# zou nog wel is de belangrijkste taal kunnen worden in de toekomst. Voor meer informatie over .NET wendt u tot wiki.

J# is in feite een kopie van Java, zodat het voor Java programmeurs eenvoudig is hun bestaande Java applicaties over te zetten naar het .Net Framework. C# daarentegen is een volledig nieuwe taal die taalelementen van Java en C++ bevat. Ik ken C# eigenlijk alleen oppervlakkig maar mijn eerste indruk is dat je meer opties hebt maar de syntax heel wat minder elegant is als die van Java.

Op dit moment heeft Java eigenlijk één fenomenaal voordeel boven C# en dat is platformonaffhangkelijkheid. Er worden aan gewerkt voor C# maar ze zijn er nog lang niet.

Verdere informatie te vinden op wikipedia.

Tyfius

Legacy Member
Spaceman zei:
Op dit moment heeft Java eigenlijk één fenomenaal voordeel boven C# en dat is platformonaffhangkelijkheid. Er worden aan gewerkt voor C# maar ze zijn er nog lang niet.

Verdere informatie te vinden op wikipedia.
We zijn er wel bijna. .NET 1.1 wordt volledig ondersteund en ik schat zo'n 95% van .NET 2.0 wordt ook reeds ondersteund en .NET 3.0 is ook al aardig onderweg.
Daarnaast beschikt de cross platform implementatie ook veel extra's die de MS versie niet heeft.
Er is zelfs al een werkende SilverLight implementatie.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan