Sida 9 av 14
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 20:30:44
				av TomasL
				Jag talar innan Andorid kom till. 
Java har aldrig överhuvudtaget någonsin använts i telefoner (möjligtvis med undantag av ev GUI), dock sannolikt inte ens där.
Innan Android kom så fanns det Iphone och Windows Phone/ME, Symbian, Blackberry, PalmOS, samt ett antal mer eller mindre okända OS. 
Symbian, Palm och Blackberry var väl de stora innan Android.
Till detta kommer alla Embeddedliknande platformar, utvecklade av enskilda telefontillverkare.
Att det kan finnas en JRE i telefonen säger ju ingenting annat än att man eventuellt kan köra ett java-program i telefonen.
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 20:33:30
				av Al_Bundy
				lillahuset skrev:Jag vet inte om Oracle håller med dig. För 10 år sedan så dominerade Java ME när det kommer till mobiltelefoner. Sedan dess tog Andorid över.
Jag gissar att det enda som skrevs i Java var lullullet til display och appar. Det som var tidskritiskt skrevs nog i C och snurrade på samma processor.
 
Tacka för det! Java gör livet enklare. Jag tror att Oracle kommer sluta med Java ME då Java ME är endast anpassat för fåtal enkortsdatorer samt att Java ME är ganska snålt och att det finns redan starkare konkurrenter.
Java SE och Java EE kommer Oracle fortsätta att utveckla vidare. Det är två produkter som "säljs" mest.
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 20:36:35
				av TomasL
				Samma motivering att använda Java före C. 
Nej, det är naturligtvis inte motivet.
C används garanterat inte till samma saker som man eventuellt använder JAVA till.
Vad man dock kan konstatera är att JAVA i de flesta fall är betydligt långsammare än de flesta andra systemen.
Så varför man överhuvudtaget vill använda JAVA är för mig en gåta, och med tanke på hur herrans många ickefungerande JAVA-program som finns, så är java rena katastrofen.
Personligen så föredrar jag C# och .NET framför JAVA.
Tacka för det! Java gör livet enklare. 
Nja, snarare tvärtom.
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 21:06:41
				av Rick81
				Jag kan rekommendera golang för enkortsdatorer. Det är ett gratis högnivåspråk med mycket färdiga bibliotek,  det har crosscompiling så samma kod går köra på windows/ linux / ARM/x86/amd64 och enkel implemtation av testfall. Dessutom kompileras alla dependencies in så man slipper dependencyhelvetet..nackdelen är att hello world tar 5 MB pga detta. I min mening är det bättre alternativ än java och python.
			 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 21:22:57
				av lillahuset
				Hehe, 5MB.  

 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 21:33:08
				av TomasL
				Tja, gammal och god
High School/Jr.High
  10 PRINT "HELLO WORLD"
  20 END
First year in College
  program Hello(input, output)
    begin
      writeln('Hello World')
    end.
Senior year in College
  (defun hello
    (print
      (cons 'Hello (list 'World))))
New professional
  #include <stdio.h>
  void main(void)
  {
    char *message[] = {"Hello ", "World"};
    int i;
 
    for(i = 0; i < 2; ++i)
      printf("%s", message);
    printf("\n");
  }
Seasoned professional
  #include <iostream.h>
  #include <string.h>
 
  class string
  {
  private:
    int size;
    char *ptr;
 
  string() : size(0), ptr(new char[1]) { ptr[0] = 0; }
 
    string(const string &s) : size(s.size)
    {
      ptr = new char[size + 1];
      strcpy(ptr, s.ptr);
    }
 
    ~string()
    {
      delete [] ptr;
    }
 
    friend ostream &operator <<(ostream &, const string &);
    string &operator=(const char *);
  };
 
  ostream &operator<<(ostream &stream, const string &s)
  {
    return(stream << s.ptr);
  }
 
  string &string::operator=(const char *chrs)
  {
    if (this != &chrs)
    {
      delete [] ptr;
     size = strlen(chrs);
      ptr = new char[size + 1];
      strcpy(ptr, chrs);
    }
    return(*this);
  }
 
  int main()
  {
    string str;
 
    str = "Hello World";
    cout << str << endl;
 
    return(0);
  }
Master Programmer
  [
  uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
  ]
  library LHello
  {
      // bring in the master library
      importlib("actimp.tlb");
      importlib("actexp.tlb");
 
      // bring in my interfaces
      #include "pshlo.idl"
 
      [
      uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
      ]
      cotype THello
   {
   interface IHello;
   interface IPersistFile;
   };
  };
 
  [
  exe,
  uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
  ]
  module CHelloLib
  {
 
      // some code related header files
      importheader(<windows.h>);
      importheader(<ole2.h>);
      importheader(<except.hxx>);
      importheader("pshlo.h");
      importheader("shlo.hxx");
      importheader("mycls.hxx");
 
      // needed typelibs
      importlib("actimp.tlb");
      importlib("actexp.tlb");
      importlib("thlo.tlb");
 
      [
      uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
      aggregatable
      ]
      coclass CHello
   {
   cotype THello;
   };
  };
 
 
  #include "ipfix.hxx"
 
  extern HANDLE hEvent;
 
  class CHello : public CHelloBase
  {
  public:
      IPFIX(CLSID_CHello);
 
      CHello(IUnknown *pUnk);
      ~CHello();
 
      HRESULT  __stdcall PrintSz(LPWSTR pwszString);
 
  private:
      static int cObjRef;
  };
 
 
  #include <windows.h>
  #include <ole2.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include "thlo.h"
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  int CHello::cObjRef = 0;
 
  CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
  {
      cObjRef++;
      return;
  }
 
  HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
  {
      printf("%ws
", pwszString);
      return(ResultFromScode(S_OK));
  }
 
 
  CHello::~CHello(void)
  {
 
  // when the object count goes to zero, stop the server
  cObjRef--;
  if( cObjRef == 0 )
      PulseEvent(hEvent);
 
  return;
  }
 
  #include <windows.h>
  #include <ole2.h>
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "mycls.hxx"
 
  HANDLE hEvent;
 
   int _cdecl main(
  int argc,
  char * argv[]
  ) {
  ULONG ulRef;
  DWORD dwRegistration;
  CHelloCF *pCF = new CHelloCF();
 
  hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
 
  // Initialize the OLE libraries
  CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
      REGCLS_MULTIPLEUSE, &dwRegistration);
 
  // wait on an event to stop
  WaitForSingleObject(hEvent, INFINITE);
 
  // revoke and release the class object
  CoRevokeClassObject(dwRegistration);
  ulRef = pCF->Release();
 
  // Tell OLE we are going away.
  CoUninitialize();
 
  return(0); }
 
  extern CLSID CLSID_CHello;
  extern UUID LIBID_CHelloLib;
 
  CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
      0x2573F891,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
      0x2573F890,
      0xCFEE,
      0x101A,
      { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
  };
 
  #include <windows.h>
  #include <ole2.h>
  #include <stdlib.h>
  #include <string.h>
  #include <stdio.h>
  #include "pshlo.h"
  #include "shlo.hxx"
  #include "clsid.h"
 
  int _cdecl main(
  int argc,
  char * argv[]
  ) {
  HRESULT  hRslt;
  IHello        *pHello;
  ULONG  ulCnt;
  IMoniker * pmk;
  WCHAR  wcsT[_MAX_PATH];
  WCHAR  wcsPath[2 * _MAX_PATH];
 
  // get object path
  wcsPath[0] = '\0';
  wcsT[0] = '\0';
  if( argc > 1) {
      mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
      wcsupr(wcsPath);
      }
  else {
      fprintf(stderr, "Object path must be specified\n");
      return(1);
      }
 
  // get print string
  if(argc > 2)
      mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
  else
      wcscpy(wcsT, L"Hello World");
 
  printf("Linking to object %ws\n", wcsPath);
  printf("Text String %ws\n", wcsT);
 
  // Initialize the OLE libraries
  hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
  if(SUCCEEDED(hRslt)) {
 
 
      hRslt = CreateFileMoniker(wcsPath, &pmk);
      if(SUCCEEDED(hRslt))
   hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
 
      if(SUCCEEDED(hRslt)) {
 
   // print a string out
   pHello->PrintSz(wcsT);
 
   Sleep(2000);
   ulCnt = pHello->Release();
   }
      else
   printf("Failure to connect, status: %lx", hRslt);
 
      // Tell OLE we are going away.
      CoUninitialize();
      }
 
  return(0);
  }
Apprentice Hacker
  #!/usr/local/bin/perl
  $msg="Hello, world.\n";
  if ($#ARGV >= 0) {
    while(defined($arg=shift(@ARGV))) {
      $outfilename = $arg;
      open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
      print (FILE $msg);
      close(FILE) || die "Can't close $arg: $!\n";
    }
  } else {
    print ($msg);
  }
  1;
Experienced Hacker
  #include <stdio.h>
  #define S "Hello, World\n"
  main(){exit(printf(S) == strlen(S) ? 0 : 1);}
Seasoned Hacker
  % cc -o a.out ~/src/misc/hw/hw.c
  % a.out
Guru Hacker
  % echo "Hello, world."
New Manager
  10 PRINT "HELLO WORLD"
  20 END
Middle Manager
  mail -s "Hello, world." bob@b12
  Bob, could you please write me a program that prints "Hello, world."?
  I need it by tomorrow.
  ^D
Senior Manager
  % zmail jim
  I need a "Hello, world." program by this afternoon.
Chief Executive
  % letter
  letter: Command not found.
  % mail
  To: ^X ^F ^C
  % help mail
  help: Command not found.
  % damn!
  !: Event unrecognized
  % logout
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 21:42:43
				av Al_Bundy
				TomasL skrev:Samma motivering att använda Java före C. 
Nej, det är naturligtvis inte motivet.
C används garanterat inte till samma saker som man eventuellt använder JAVA till.
Vad man dock kan konstatera är att JAVA i de flesta fall är betydligt långsammare än de flesta andra systemen.
Så varför man överhuvudtaget vill använda JAVA är för mig en gåta, och med tanke på hur herrans många ickefungerande JAVA-program som finns, så är java rena katastrofen.
Personligen så föredrar jag C# och .NET framför JAVA.
Tacka för det! Java gör livet enklare. 
Nja, snarare tvärtom.
 
Självklart används C där den behövs - Små kretskort. 
Jag skulle nog säga att Java är bra om man vill bygga med befintligt och man kan acceptera att det blir inte det snabbaste systemet. 
Varför man vill använda Java:
GUI
Server
Webbapplikationer
Databas
Portabel 
IoT
Du väljer inte ".NET", utan du väljer ett programmeringsspråk. ".NET" kan man säga är den "virtuella maskinen", samma som Java VM. C# och Java är konkurrenter, men C# har börjat tappa i popularitet med tanke på att Microsoft har inte lyckats göra C# portabelt än.
För det första så heter det inte JAVA, utan Java. För det andra så måste man buga tre gånger åt Redwood City, Kalifornien, USA när man säger Java   

 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 21:45:13
				av Al_Bundy
				Rick81 skrev:Jag kan rekommendera golang för enkortsdatorer. Det är ett gratis högnivåspråk med mycket färdiga bibliotek,  det har crosscompiling så samma kod går köra på windows/ linux / ARM/x86/amd64 och enkel implemtation av testfall. Dessutom kompileras alla dependencies in så man slipper dependencyhelvetet..nackdelen är att hello world tar 5 MB pga detta. I min mening är det bättre alternativ än java och python.
När ska det ta slut med alla dessa fjuttiga programmeringsspråk? Säkert tjuriga hipsters som vägrar gå efter de vanliga språken t.ex. PHP, Java, Python, C, C++. 
Ja. 90-talet! Det var en bra tid när programmerare fick acceptera det som erbjuds.  

 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 22:01:12
				av TomasL
				Al_Bundy skrev:TomasL skrev:Samma motivering att använda Java före C. 
Nej, det är naturligtvis inte motivet.
C används garanterat inte till samma saker som man eventuellt använder JAVA till.
Vad man dock kan konstatera är att JAVA i de flesta fall är betydligt långsammare än de flesta andra systemen.
Så varför man överhuvudtaget vill använda JAVA är för mig en gåta, och med tanke på hur herrans många ickefungerande JAVA-program som finns, så är java rena katastrofen.
Personligen så föredrar jag C# och .NET framför JAVA.
Tacka för det! Java gör livet enklare. 
Nja, snarare tvärtom.
 
Självklart används C där den behövs - Små kretskort. 
 
Vilket skitsnack, C använder man till exempel om man vill skriva ett operativsystem, UNIX och sannolikt stora delar av LINUX, WINDOWS, IOS, BSD mfl är skrivna i C.
Al_Bundy skrev:
Jag skulle nog säga att Java är bra om man vill bygga med befintligt och man kan acceptera att det blir inte det snabbaste systemet. 
Varför man vill använda Java:
GUI
Server
Webbapplikationer
Databas
Portabel 
IoT
Du väljer inte ".NET", utan du väljer ett programmeringsspråk. ".NET" kan man säga är den "virtuella maskinen", samma som Java VM. C# och Java är konkurrenter, men C# har börjat tappa i popularitet med tanke på att Microsoft har inte lyckats göra C# portabelt än.
För det första så heter det inte JAVA, utan Java. För det andra så måste man buga tre gånger åt Redwood City, Kalifornien, USA när man säger Java   

 
C# .NET fungerar i dag problemfritt på i stort sett alla OS, så det är minst lika portabelt som JAVA.
Man använder inte JAVA i databaser, snarare C, C++, C# samt COBOL.
IOT, nja knappast, där är det C som är förhärskande.
Du skriver inte Webapplikationer i JAVA, utan i HTML och Javascript om det är client-side, är det server-side så är väl PHP och ASP de förhärskande.
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 22:10:46
				av lillahuset
				Al: Det är väl bra att det dyker upp nya språk, annars skulle du troligen ha programmerat i Fortran eller Algol idag. Vissa språk blir stora och populära vissa tynar ganska snabbt bort.
			 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 22:57:30
				av Shimonu
				Al_Bundy skrev:TomasL skrev:Samma motivering att använda Java före C. 
Nej, det är naturligtvis inte motivet.
C används garanterat inte till samma saker som man eventuellt använder JAVA till.
Vad man dock kan konstatera är att JAVA i de flesta fall är betydligt långsammare än de flesta andra systemen.
Så varför man överhuvudtaget vill använda JAVA är för mig en gåta, och med tanke på hur herrans många ickefungerande JAVA-program som finns, så är java rena katastrofen.
Personligen så föredrar jag C# och .NET framför JAVA.
Tacka för det! Java gör livet enklare. 
Nja, snarare tvärtom.
 
Självklart används C där den behövs - Små kretskort. 
 
Varför skulle kretskortets storlek spela roll för vilket språk man använder?
 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 23:21:09
				av Al_Bundy
				Enklare att bygga en Kompilator för C än t.ex C#
			 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 23:23:17
				av TomasL
				Och vad har en kompilator med storleken på kretskorten att göra?
Tror du får läsa på, vad en kompilator egentligen är.
			 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 23:26:58
				av lillahuset
				Jajaja, Al uttrycker sig inte alltid så stringent men i åtminstone det här fallet tror jag ni fattar vad han menar.
			 
			
					
				Re: Är AVR rätt för mig om jag ska bygga små system?
				Postat: 15 november 2018, 23:30:48
				av Al_Bundy
				TomasL skrev:
Vilket skitsnack, C använder man till exempel om man vill skriva ett operativsystem, UNIX och sannolikt stora delar av LINUX, WINDOWS, IOS, BSD mfl är skrivna i C.
C# .NET fungerar i dag problemfritt på i stort sett alla OS, så det är minst lika portabelt som JAVA.
Man använder inte JAVA i databaser, snarare C, C++, C# samt COBOL.
IOT, nja knappast, där är det C som är förhärskande.
Du skriver inte Webapplikationer i JAVA, utan i HTML och Javascript om det är client-side, är det server-side så är väl PHP och ASP de förhärskande.
Ja. Små kretsar. 
Du är verkligen en C-programmerare. Nej. Du kan inte ta C# kod i Windows 10 och komplicerade det i Ubuntu. Du skulle få enorma problem då .NET plattformen för Linux ljusår efter Windows .NET. 
Java används för säkerhet. Alla skriptbaserade webbsidor är osäkra. 
IoT så är Java bäst. MicroEJ leder stort inom Java för inbyggda system. Java bussar st för IoT då java är ett högnivåspråk.