Är AVR rätt för mig om jag ska bygga små system?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg av lillahuset »

Hehe, 5MB. :badgrin:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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 :wink:
Senast redigerad av Al_Bundy 15 november 2018, 21:46:04, redigerad totalt 2 gånger.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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. :tumupp:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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 :wink:
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.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Shimonu
Inlägg: 294
Blev medlem: 21 oktober 2015, 22:44:33

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg av Al_Bundy »

Enklare att bygga en Kompilator för C än t.ex C#
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45175
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg av lillahuset »

Jajaja, Al uttrycker sig inte alltid så stringent men i åtminstone det här fallet tror jag ni fattar vad han menar.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Är AVR rätt för mig om jag ska bygga små system?

Inlägg 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.
Skriv svar