Gå til innhold

Vil lage et ava program, hvilket språk


Anbefalte innlegg

Hei

 

Jeg har fått en del idéer i hodet i dag. Idéer som kan bli noe stort :-)

 

Altså jeg har lyst til å laget et avansert program, som fungerer som at brukeren kan "programmere" og konfigurere et enviroment som man senere starter og kjører.

 

Programmet (som da brukeren har konfigurert) skal hente inn data fra IO moduler (også over nettverket). Skal kjøre egne prosesser som behandler disse dataene og lagrer dem i ulike format. Bl.a. til en SQL database, men også til filer til rask bruk i programmet. Det er liten sjangs for at det blir behov for noe 3D grafikk, altås per i dag ingen behov for 3D.

 

 

Lurer litt på hva slags programmeringsspråk dere vil anbefale til dette?

Jeg har erfaring med VB, noe VC, PHP, samt andre språk innen industrien.

Har relativt lett for å tilpasse meg andre språk så jeg skulle likt å funnet det som er det beste til denne bruken.

Er VB/VC kraftige nok til å lage et slikt program?

Teller litt pluss at man så enkelt tegner former i Visual..., hvordan lager man former i ikke Visual... språk?

 

Håper på noe svar slik at jeg kan komme igang snart.

 

[edit]

Brukeren skal også kunne lage egne funksjoner, i et eller annet programmerings språk. Disse skal kunne konfigureres, av brukeren, når og hvordan de skal kjøres.

Endret av Drittsekken
Lenke til kommentar
Videoannonse
Annonse

JAVA skal være temmelig lett og programmere opp enkel grafikk.

 

Men hvis du vil teste "grensene" så har jo Crytek lagt ut spill motorikken sine.. som du kan teste og programmere direkte. den er temmelig kraftig.. og fin.. for og lage "spill" der er det også mulighet for 3d grafikk hvis du ønsker den muligheten.. det er også veldig fine hjelpe sider for og få brukt CryENGINE.

Se_LINK_

 

mener og huske at unreal har gjort samme løsningen.. og begge skal også ha mulighet for multiplatform.. hvis du ønsker og teste programmet på egen ps3 eller lignende.

 

VB og VC tillater litt grafisk.. men det er mye jobb... stort sett er dette "grundbyggesteinene"

 

Men jeg har bare testet Cryengine liten time... og ellers bare kjenskap til C (VC) _ C++ _ Assembly

Lenke til kommentar

Hei

 

Takker for svar, skal sjekke ut de du nevner.

Tror ikke det blir Java, programmet er tenkt å kjøre 24/7 over tid for å logge data. Har ikke erfaring av at Java er så stabilt, og alle de oppdateringene.

 

Det grafiske blir ikke så avansert. Stort sett blir det enkle former som og et "Runtime" vindu.

 

Når jeg tenker etter, kan være en fordel med et godt kjent språk siden brukeren skal kunne lage egne programsnutter som skal kjøre som tillegg.

Lenke til kommentar

Om du allerede er kjent med Visual basic bil jeg anbefale C# som skal klare oppgavene fint, der har du og tilgang til .NET rammeverket som du nok er kjent med fra VB, samt at du kan programmere i visual studio som du allerede er kjent med - så det hele blir mye lettere for deg.

 

så lenge du gjør henting av data asynkront, og ikke lar det skje i tråden som tar deg av rendering burde språket være mer enn bra nok til programmet du forklarer.

Lenke til kommentar

Om du allerede er kjent med Visual basic bil jeg anbefale C# som skal klare oppgavene fint, der har du og tilgang til .NET rammeverket som du nok er kjent med fra VB, samt at du kan programmere i visual studio som du allerede er kjent med - så det hele blir mye lettere for deg.

 

så lenge du gjør henting av data asynkront, og ikke lar det skje i tråden som tar deg av rendering burde språket være mer enn bra nok til programmet du forklarer.

 

Ok, var faktisk C som var i tankene før jeg spurte her på forumet.

Hva er hoved forskjellen mellom C# og C++?

 

Har kjørt async prosesser tidligere så det skal gå bra.

 

Takker for svar.

Lenke til kommentar

Om du allerede er kjent med Visual basic bil jeg anbefale C# som skal klare oppgavene fint, der har du og tilgang til .NET rammeverket som du nok er kjent med fra VB, samt at du kan programmere i visual studio som du allerede er kjent med - så det hele blir mye lettere for deg.

 

så lenge du gjør henting av data asynkront, og ikke lar det skje i tråden som tar deg av rendering burde språket være mer enn bra nok til programmet du forklarer.

 

Ok, var faktisk C som var i tankene før jeg spurte her på forumet.

Hva er hoved forskjellen mellom C# og C++?

 

Har kjørt async prosesser tidligere så det skal gå bra.

 

Takker for svar.

 

C# ligner mer på Java og Visual Basic som programmeringsspråk. Det er garbage collection (så du trenger ikke ryddde opp etter deg) og obligatorisk objektorientering. Det er statisk og dynamisk typet (i likhet med Visual Basic) og har et innebygget spørringsspråk (LINQ) som er ganske nyttig.

 

Har selv brukt det til å lage programmer i industrien. Det var som et kontrollsystem for servomotorer. Run-timen er pålitelig, språket er relativt simpelt og anvendbart. Absolutt anbefalt.

Lenke til kommentar

Takker for alle svar.

 

Er litt usikker på om jeg skal velge C# eller C++.

Leser på nettet at C++ er en del raskere, noe jeg forespeiler at jeg trenger.

 

Men leste også en plass at man kan lage selve GUI'en i C# og lage "drivere"/moduler i C++ for å utnytte den effektiviteten som C++ har.

 

Er det noen som har erfaringer med dette?

 

PS: har ikke funnet til til å begynne enda, krever litt mer planleggein på idé nivå enda.

Lenke til kommentar

For tiden skriver jeg et spill i C++. Der har jeg hatt ganske stor glede av ytelsesforskjellen, fordi det er et ganske prosessorintensivt spill. Derimot er ikke ytelsen i C# dårlig, og for de aller fleste applikasjoner så er det at det tar vesentlig enklere tid å utvikle i C# et temmelig stort pluss, i tillegg til obligatorisk garbage collection (C++ har som standard ingen garbage collection)

Lenke til kommentar

Tror ikke det blir Java, programmet er tenkt å kjøre 24/7 over tid for å logge data. Har ikke erfaring av at Java er så stabilt, og alle de oppdateringene.

 

Og hva er galt med Java som ikke lar deg kjøre 24/7? Og hva slags erfaring er det du snakker om? Ikke kom med dritt hvis du ikke vet hva du snakker om.

 

Skal innrømme at jeg ikke har kjørt noe særlig program i Java, men har vært borti noen spill. Disse har flere ganger måttet restartes for å få til å kjøre skikkelig.

 

Har hatt flere maskiner der Java har sluttet å virke uten at det hjalp å oppdatere Java eller å avinstallere og installere.

 

Med oppdateringer tenker jeg på at det nærmest hver eneste dag er en ny oppdatering på Java. Antar at man da må restarte applikasjonen for å få oppdatert.

 

 

Det er mine erfaringer, og ut ifra de så stoler jeg ikke 100% på Java.

Det kan godt være at jeg har vært uheldig, og at det går ann å sette dette opp mer stabilt.

Hvis dette programmet mitt til slutt blir til noe kan det være at det skal ut til industrien og da teller det positivt at det er i et språk som er kjent i bransjen. Har vært på flere seminarer innen bransjen der det etter håndsopprekning er C som er foretrukket språk.

 

Grunnen til at jeg forhørte meg her var at jeg ville lodde stemningen, finne ut om C#, C++, o.s.v. kunne gjøre jobben uten å være for ledende i spørsmålet.

 

Håper jeg ikke har såret noen.

Lenke til kommentar

Selv blir jeg glad som et lite barn hver gang jeg slipper å skrive kode i java og heller kan bruke C#. Tilgangen på .NET er helt nydelig og C# er et mye smartere språk enn java på mange måter. Her er et eksempel på noe som ikke er helt som det skal i java: http://www.cowtowncoder.com/blog/archives/2008/12/entry_126.html

 

Noe av ytelsestapet til C# ligger vel i det faktum at det stort set bruker JIT-kompilering, eller "Just In Time"-kompilering. Altså blir C# i utgangspunktet bare kompilert til et slags mellomspråk(CIL, Common Intermediate Language) som igjen blir kompilert mens programmet kjører. Hvis jeg ikke er heeeeeeelt på jordet så mener jeg å ha lest at man kan droppe JIT og kompilere C# helt til maskinkode før det kjøres, og droppe CIL.

 

C++ vil nok fremdeles kunne yte bedre og kunne føre til et bedre sluttprodukt, men C++ er vesentlig mer avansert og krevende.

 

Mvh Håkon

Lenke til kommentar

Algoritmene dine er mykje viktigare for ytelsen enn valet av programmeringsspråk. Python blir jo mykje brukt til scientific tallknusing for tida.

 

Få programmet ditt til å fungere først og tenk på ytelsen etterpå heller.

 

Og Java er verken drit å programmere i, treigt eller ustabilt. Og eg vil påstå Eclipse(med plugins) er overlegen Visual Studio.

 

Valet av C pågrunn av ytelse krevje enorm og djup teknisk forståelse over korleis eit operativsystem fungerer. Dei fleste som prøver seg på C vil skrive eit program som er treigare enn det ville ha vore om det hadde vore skreve i Java. Samtidig så er det mange som gløymer at IO, Nettverk, drivere osv. også introduserer latency som er med på å dra ned den totale ytelsen.

 

Eg vil anbefale å bruke det du kan, men ikkje Visual Basic eller PHP. Då er det påtide å lære seg noko nytt.

Lenke til kommentar

Og Java er verken drit å programmere i, treigt eller ustabilt. Og eg vil påstå Eclipse(med plugins) er overlegen Visual Studio.

 

Visual C# med ReSharper. Lite som slår det. ved siden av at C# er et overlegent programmeringsspråk (from item in myCollection where item.value > 100 order by item.Id descending select item; er bortimot umulig å uttrykke enkelt i Java fordi Java mangler funksjonell programmering, delegates, lambdauttryk, fulle closures og generatorer) så er ReSharper et fantastisk refaktoreringsverktøy.

Endret av GeirGrusom
Lenke til kommentar

Er det noko du føler som mangler av snadder i Java så kan du prøve Groovy(som ikkje er eit heilt nytt språk på den tradisjonelle måten, men meir pythonfisert Java)

Då blir følgande spørring ala noko som dette:

myCollection.findAll{ it.value > 100 }.sort{it.id}.reverse()

Og med Groovy 2.0 så er ytelsen nesten like god som Java.

Lenke til kommentar

Er det noko du føler som mangler av snadder i Java så kan du prøve Groovy(som ikkje er eit heilt nytt språk på den tradisjonelle måten, men meir pythonfisert Java)

Då blir følgande spørring ala noko som dette:

Det er jo ganske kult. Men det er så mye galt med Java. Både språket og run-timen. Halvparten av teamet på jobben bruker det, og jeg misunner dem ikke et sekund.

Lenke til kommentar
  • 4 uker senere...

Må innrømme at jeg ikke skjønner helt hva som skal lages her. Hva er «former»?

 

Er det «forms», altså standard «komponentbasert» gui med tekstfelt, labler, combo osv? Eller er det «grafiske former», altså 2D-grafikk (men lite/ingen 3D)?

 

Og skal det lages en fet klient, eller skal dette kjøres i browser?

 

Når TS ikke klarer å bruke Java på sin egen maskin så kan han ihvertfall ikke forvente at brukerne skal klare det på sine klientmaskiner, og det samme gjelder nok fort for andre plattformer og plugins også.

 

Dermed: Styr unna båte fete klienter og browserplugins på klientsiden. Vi vet at visse teknologier ikke er X-platform, og visse er for vriene for sluttbrukerne, særlig når de skal leve inni browseren (dog; den forhatte bank-id-appen har den fine side-effekten at den tvinger veldig mange norske nettbankbrukere til å ha en fungerende java-plugin i browseren sin :)

 

Jeg tror jeg ville satsa på rent webgrensesnitt, og HTML5 for evt. «former»-greier, hva nå det måtte være. Er enklere å tvinge brukere til å kjøre en browser med en slags HTML5-støtte enn å tvinge dem til å holde orden på en balstyrig plugin, eller utestenge Mac-brukere, for dem blir det visst fler og flere av.

 

Hvis man gjør dette valget så står man fortsatt ganske fritt til å velge serverside-teknologi. Her vil jeg bare bemerke at Java er dønn stabilt og gir en viss frihet til å kjøre på plattformer som ikke koster så mye. Dog blir som regel hosting'en dyrere enn med f.eks. PHP, og det fins helt sikkert konkurransedyktige priser på .Net-hosting også.

 

C og C++ (uten .Net) virker som temmelig merkelige valg, medmindre man kan dette veldig godt fra før av og ønsker å utnytte den kompetansen. VB er rett og slett for corny, men fullverdig .Net-språk så hvis smaken heller den veien, værsågod. Resten av .Net er vel også OK, hvis man er komfortabel med å leve på Windowsplattform. Java er som sagt dønn stabilt, men man velger det utifra plattform og rammeverksøkologien, ikke fordi språket er så sexy. Men fritt etter Falsk/Mathiesen- alle stygge jenter har ei pen venninde ... groovy, clojure, kotlin ++.

 

Til slutt vil jeg bare hive på - uten å ha noen egentlig ide om hva Drittsekken ønsker å lage - at bekymringer og tanker rundt ytelse, JIT, ikke-JIT, maskinkode og annet surr er fullstendig bortkasta, hvis det ikke snurrer er det enten fordi databasen er flaskehals eller du har gjort noe dumt. Stort sett.

Lenke til kommentar

Den følelsen er nok helt sikkert gjensidig :)

 

Java er objektivt et dårligere programmeringsspråk:

Lambdauttrykk:

someArray.Sort( (a, b) => a.SomeValue - b.SomeValue)

Languagfe integrated query:

someDataSet = from someItem in otherDataSet
 where someItem.Name == "Foo"
 let someArbitraryValue = someItem.Value * 100
 select someArbitraryValue + someItem.OtherValue;

 

Enum er value-type (I java er det vanlig å bruke conster med int)

[Flags]
enum Direction : short
{
 North = 1
 West = 2
 East = 4
 South = 8
}
void Foo()
{
 var dir = Direction.North | Direction.East;
}

 

Usignerte datatyper:

uint foo = 800;

 

 

Delegates:

Action action = someInstance.Foo;

action();

 

Java sin runtime støtter ikke generics, det er kun Java compileren som gjør det. Dette gjør at ArrayList<int> blir til ArrayList internt, og alle objekter som blir lagt til vil bli boxet og unboxet for valuetypes, og blir konvertert til det generics skulle gjort. C# gjør ikke noe slikt, og vil derfor har en langt mer effektiv implementasjon.

 

Er heller ikke fulle closures i Java:

List<Action> actions = new List<Action>();
for(int i = 0; i < 100; i++)
{
 int closedValue = i;
 actions.Add(() => Console.WriteLine(i.ToString()));
}
actions.ForEach(a => a());

 

Java har heller ikke generators:

public static IEnumerable<int> Range(int start, int count)
{
 for(int i = start; i < start + count; i++)
   yield return i;
}

static void Main()
{
 foreach(var item in Range(0, 100))
   Console.WriteLine(item.ToString());
}

 

Egendefinerte value-types, auto-properties og operator overloading har heller ikke Java:

public struct Vector
{
 public readonly float x, y;
 public Vector(float x, float y)
 {
   this.x = x;
   this.y = y;
 }
 public static Vector operator + (Vector a, Vector b)
 {
   return new Vector(a.x + b.x, a.y + b.y)
 }
}

static void Main()
{
 var result = new Vector(100, 100) + new Vector(100, 100);
}

 

ExpressionTrees er også noe C# har men ikke java:

public static SomeFunction<T>(Expression<Func<T, bool>> expression)
{
 if(expression.Left is BinaryExpression)
  //... uttrykket som er lagt inn i parameteret expression som et lambdauttrykk blir kun kompilert
  // til et uttrykkstre av kompilatoren.
}

 

Dette sammen med LINQ gjør at man kan ha sterk typing i SQL uttrykk blant annet, og får en naturlig måte å spørre databaser på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...