As opposed to what? The truly popular go servers for desktop only provide a Windows only client which seems to be much more limiting.SmoothOper wrote:Also it seems to be fairly high centered on Java as a technology, which is also a limiting technology in many ways. IE the authors of the software are unwilling to go that extra mile to make the best possible product, and it shows in the basic usefulness or functionality of their product.
Java ( was: How does a go server like KGS/Kaya keep running?
- oren
- Oza
- Posts: 2777
- Joined: Sun Apr 18, 2010 5:54 pm
- GD Posts: 0
- KGS: oren
- Tygem: oren740, orenl
- IGS: oren
- Wbaduk: oren
- Location: Seattle, WA
- Has thanked: 251 times
- Been thanked: 549 times
Java ( was: How does a go server like KGS/Kaya keep running?
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
oren wrote:As opposed to what? The truly popular go servers for desktop only provide a Windows only client which seems to be much more limiting.SmoothOper wrote:Also it seems to be fairly high centered on Java as a technology, which is also a limiting technology in many ways. IE the authors of the software are unwilling to go that extra mile to make the best possible product, and it shows in the basic usefulness or functionality of their product.
Not true, I have an IGS client on my iPad and on my windows machine. The problem is that writing one client that works everywhere will always limit the application to the functionality that is universal across platforms, so for example it won't be using touch technology on the iPad since it isn't implemented on a windows platform, and the windows platform will start noticeably slower and use more memory that is necessary due to the JVM being convenient for the programmer but inconvenient for the users. This is what I am talking about when I say Java programmers are not committed
-
ProtoJazz
- Dies in gote
- Posts: 52
- Joined: Mon Jun 25, 2012 11:19 pm
- Rank: KGS 13k
- GD Posts: 0
- Universal go server handle: ProtoJazz
- Been thanked: 19 times
Re: How does a go server like KGS/Kaya keep running?
I really dont know what you mean about limitations in java. Even the new GoPanda client is in Java, And it looks pretty cool. Everything seems to be moving
more towards cross platform (Something like java) Or web based (Like Kaya)
The only real drawbacks to something like Java in a programming sence is that it is dificult to micro manage your resorces. Something a game would need
to be able to run on a mid range pc, while still running the latest DirectX. Go doesnt really need that, It has more then enough resources to run great
without the need for such heavy optimization. C++ is not as common as it used to be, and outside of very specific stuff C isnt really used for programs,
more towards cross platform (Something like java) Or web based (Like Kaya)
The only real drawbacks to something like Java in a programming sence is that it is dificult to micro manage your resorces. Something a game would need
to be able to run on a mid range pc, while still running the latest DirectX. Go doesnt really need that, It has more then enough resources to run great
without the need for such heavy optimization. C++ is not as common as it used to be, and outside of very specific stuff C isnt really used for programs,
-
Mef
- Lives in sente
- Posts: 852
- Joined: Fri Apr 23, 2010 8:34 am
- Rank: KGS [-]
- GD Posts: 428
- Location: Central Coast
- Has thanked: 201 times
- Been thanked: 333 times
Re: How does a go server like KGS/Kaya keep running?
Just thought I'd mention, there is an android application for KGS that works rather well on tablets and phones.SmoothOper wrote: Not true, I have an IGS client on my iPad and on my windows machine. The problem is that writing one client that works everywhere will always limit the application to the functionality that is universal across platforms, so for example it won't be using touch technology on the iPad since it isn't implemented on a windows platform, and the windows platform will start noticeably slower and use more memory that is necessary due to the JVM being convenient for the programmer but inconvenient for the users. This is what I am talking about when I say Java programmers are not committedto going the extra mile.
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
Who is going to buy a high end computer just to have java make it behave like a mid range machine. I don't care for waiting for my clients to start the JVM, and I prefer to be able to do other things while I play go, or at least have them running in the background. Browse the internet, listen to music. Check my email etc. The lack of sophistication for managing resources means there are many programmers out there who can do it without thinking so much, and quite frankly we wished they would quit shipping borky productsProtoJazz wrote:I really dont know what you mean about limitations in java. Even the new GoPanda client is in Java, And it looks pretty cool. Everything seems to be moving
more towards cross platform (Something like java) Or web based (Like Kaya)
The only real drawbacks to something like Java in a programming sence is that it is dificult to micro manage your resorces. Something a game would need
to be able to run on a mid range pc, while still running the latest DirectX. Go doesnt really need that, It has more then enough resources to run great
without the need for such heavy optimization. C++ is not as common as it used to be, and outside of very specific stuff C isnt really used for programs,
- oren
- Oza
- Posts: 2777
- Joined: Sun Apr 18, 2010 5:54 pm
- GD Posts: 0
- KGS: oren
- Tygem: oren740, orenl
- IGS: oren
- Wbaduk: oren
- Location: Seattle, WA
- Has thanked: 251 times
- Been thanked: 549 times
Re: How does a go server like KGS/Kaya keep running?
This is why I wrote "for desktop" in my message. Some provide special clients for iOS and Android.SmoothOper wrote: Not true, I have an IGS client on my iPad and on my windows machine.
-
Uberdude
- Judan
- Posts: 6727
- Joined: Thu Nov 24, 2011 11:35 am
- Rank: UK 4 dan
- GD Posts: 0
- KGS: Uberdude 4d
- OGS: Uberdude 7d
- Location: Cambridge, UK
- Has thanked: 436 times
- Been thanked: 3718 times
Re: How does a go server like KGS/Kaya keep running?
I play (or chat/kibitz/idle) on KGS whilst listening to music, browsing the internet, watching videos, checking email etc. I have an 8-year-old bog standard PC.SmoothOper wrote: I prefer to be able to do other things while I play go, or at least have them running in the background. Browse the internet, listen to music. Check my email etc.
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
Uberdude wrote:I play (or chat/kibitz/idle) on KGS whilst listening to music, browsing the internet, watching videos, checking email etc. I have an 8-year-old bog standard PC.SmoothOper wrote: I prefer to be able to do other things while I play go, or at least have them running in the background. Browse the internet, listen to music. Check my email etc.
And of the tasks you mentioned how many were in java? Have you ever tried to run multiple java programs at once?
- Phelan
- Gosei
- Posts: 1449
- Joined: Tue Apr 20, 2010 3:15 pm
- Rank: KGS 6k
- GD Posts: 892
- Has thanked: 1550 times
- Been thanked: 140 times
Re: How does a go server like KGS/Kaya keep running?
SmoothOper, I never had any problems leaving KGS open in the background while using other Java apps.
I was going to ask if you had any data on java slowing down a high-range machine to mid-range, but this is already becoming a Java discussion thread instead of what it started as. If you want to continue the discussion, we can move it elsewhere.
I was going to ask if you had any data on java slowing down a high-range machine to mid-range, but this is already becoming a Java discussion thread instead of what it started as. If you want to continue the discussion, we can move it elsewhere.
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
I have had trouble running multiple java programs. You either have to run multiple JVM's or run multiple programs in the same JVM, in the former case each invocation requires a standard gigabyte of data in overhead. If you are lucky enough that your Java programs can run on the same version of JVM, 1.5, 1.6, 1.7 ... then they can run in the same invocation, however the JVM doesn't implement kernel threads so if a program uses threads it can starve the other Java programs, and we all know Java programmers have mouths to feed too.Phelan wrote:SmoothOper, I never had any problems leaving KGS open in the background while using other Java apps.
I was going to ask if you had any data on java slowing down a high-range machine to mid-range, but this is already becoming a Java discussion thread instead of what it started as. If you want to continue the discussion, we can move it elsewhere.
My assertion is Java programs are written in Java for the convenience of the programmer not the convenience of the user, if KGS developers had taken the effort to write an application with users in mind it may be more popular and require fewer hardware resources on the server side so that there would be more profit. Amongst other problems that KGS may have turning a buck.
- quantumf
- Lives in sente
- Posts: 844
- Joined: Tue Apr 20, 2010 11:36 pm
- Rank: 3d
- GD Posts: 422
- KGS: komi
- Has thanked: 180 times
- Been thanked: 151 times
Re: How does a go server like KGS/Kaya keep running?
Just to address a couple of the falsities aboveSmoothOper wrote:I have had trouble running multiple java programs. You either have to run multiple JVM's or run multiple programs in the same JVM, in the former case each invocation requires a standard gigabyte of data in overhead. If you are lucky enough that your Java programs can run on the same version of JVM, 1.5, 1.6, 1.7 ... then they can run in the same invocation, however the JVM doesn't implement kernel threads so if a program uses threads it can starve the other Java programs, and we all know Java programmers have mouths to feed too.
In general, you cannot run multiple java applications in the same JVM. One notable exception are application servers like Tomcat, which host multiple concurrent applications, but these are not standalone applications, and have to engineered in a very specific way. I'm aware of no widely used equivalent that will do the same for arbitrary desktop applications.
Java applications, regardless of the version they were compiled with, will usually run in a more recent version of java (i.e. something compiled in 1.5 will run in a 1.7 JVM). Write once, run anywhere.
There is no "standard gigabyte" overhead. Java applications can consume a lot of memory, true, but there's no gigabyte minimum. KGS right now is running 110 megs for me ("Working Set Memory") in Windows 7 64 bit. A lot, to be sure, but hardly a gigabyte.
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
quantumf wrote:Just to address a couple of the falsities aboveSmoothOper wrote:I have had trouble running multiple java programs. You either have to run multiple JVM's or run multiple programs in the same JVM, in the former case each invocation requires a standard gigabyte of data in overhead. If you are lucky enough that your Java programs can run on the same version of JVM, 1.5, 1.6, 1.7 ... then they can run in the same invocation, however the JVM doesn't implement kernel threads so if a program uses threads it can starve the other Java programs, and we all know Java programmers have mouths to feed too.
In general, you cannot run multiple java applications in the same JVM. One notable exception are application servers like Tomcat, which host multiple concurrent applications, but these are not standalone applications, and have to engineered in a very specific way. I'm aware of no widely used equivalent that will do the same for arbitrary desktop applications.
Java applications, regardless of the version they were compiled with, will usually run in a more recent version of java (i.e. something compiled in 1.5 will run in a 1.7 JVM). Write once, run anywhere.
There is no "standard gigabyte" overhead. Java applications can consume a lot of memory, true, but there's no gigabyte minimum. KGS right now is running 110 megs for me ("Working Set Memory") in Windows 7 64 bit. A lot, to be sure, but hardly a gigabyte.
There is a default setting, which may be interpreted as standard. http://stackoverflow.com/questions/4667 ... determined 2GB WOW! that is as much memory as my machine has. I wouldn't trust anything a Java programmer says, because I was being nice and giving them the benefit of the doubt, but gee whiz two gigabytes that is like twice as many as one gigabyte. Even a Go player can do that math
They also used to ship Java in high priority mode, so that they could fake Java being comparable to C programs in speed, by starving the OS and the other programs of CPU cycles. MS fixed that, but man is that not nice(where nice is a technical term for a program that insists on running in high priority mode when it doesn't need to). Please set the record straight by all means.
-
hyperpape
- Tengen
- Posts: 4382
- Joined: Thu May 06, 2010 3:24 pm
- Rank: AGA 3k
- GD Posts: 65
- OGS: Hyperpape 4k
- Location: Caldas da Rainha, Portugal
- Has thanked: 499 times
- Been thanked: 727 times
Re: How does a go server like KGS/Kaya keep running?
Let's just say that you're about to get called on a very creative reading of that post.
*grabs popcorn*
*grabs popcorn*
-
Mef
- Lives in sente
- Posts: 852
- Joined: Fri Apr 23, 2010 8:34 am
- Rank: KGS [-]
- GD Posts: 428
- Location: Central Coast
- Has thanked: 201 times
- Been thanked: 333 times
Re: How does a go server like KGS/Kaya keep running?
Well, while your popcorn is still warm....hyperpape wrote:Let's just say that you're about to get called on a very creative reading of that post.
*grabs popcorn*
The exact quote from your own link:SmoothOper wrote:
There is a default setting, which may be interpreted as standard. http://stackoverflow.com/questions/4667 ... determined
In the J2SE platform version 1.4.2 by default the following selections were made
initial heap size of 4 Mbyte
maximum heap size of 64 Mbyte
For Java 5 if you have greater than or equal to 2GB:
"maximum heap size: Smaller of 1/4th of the physical memory or 1GB"
-
SmoothOper
- Lives in sente
- Posts: 946
- Joined: Thu Apr 19, 2012 9:38 am
- Rank: IGS 5kyu
- GD Posts: 0
- KGS: KoDream
- IGS: SmoothOper
- Has thanked: 1 time
- Been thanked: 41 times
Re: How does a go server like KGS/Kaya keep running?
Lets see how many of those JVM's you can get running on a 2gig box hehe...Mef wrote:
"maximum heap size: Smaller of 1/4th of the physical memory or 1GB"
Sure I may be wrong on the specifics, but anyhow if you look at it java programmers don't look very good.