[Poll] What programming language would you like CodinGame to support next?


#41

@_CG_Thibaud it would be really if D is supported soon. The puzzles looks really great but the current list of supported languages looks not like fun at all.

As workaround, instead of writing the source code, could you allow uploading a linux executable. Therefore you do not need to compile the source code but just run the test agsinst the executable.

Please give us any possibility to use D.


#42

Great template! Mind if I borrow it? The arguments happen to apply to my favorite language as well!

@_CG_Thibaud it would be really if $myFavoriteLanguage is supported soon. The puzzles looks really great but the current list of supported languages looks not like fun at all.

As workaround, instead of writing the source code, could you allow uploading a linux executable. Therefore you do not need to compile the source code but just run the test agsinst the executable.

Please give us any possibility to use $myFavoriteLanguage.


#43

@andre2007 I think there is not a shred of doubt on whether some persons are interested in having D support. It’s unlikely repeating the same message over and over will make it faster though.


#44

That is possible, see here.
It is not allowed in contests, but outside of them you are fine with that approach.


#45

@eulerscheZahl thank you so much! This is fantastic news.


#46

interesting…
create VM at codeanywhere.com, edit source, compile it (mobile, web, desktop ssh)
and then give SSH url to VM with program path/name to CG
CG connect over SSH, run program, send data, receive answer…

pro: u can compile with any language just need command line for starting program
contra: price is 3$/mo and security - to give CG access to VM that registered to u and paid by ur card…


#47

ok. another version without security holes.
need TCP-Redirector for Windows and Linux (for others just source code) that listen some port on client machine and redirects input network data to some program and send output of program to socket back.
with some simple GUI: listened port, program path/name with args (if needed).
and home router can be configured by port forwarding to client machine.
CG connects by TCP and do job: send data, receive answers and calcs points.

NB:
if CG will send task name before data, then it can be automated. for example for all CC tasks redirector can call any programs automatically. not fair. and CC will lose interest for people… so names should not be send… Redirector should be configured manually for each program

pro: not need add any langs to list with waiting dozen months for each
contra: sources stays at player machines. but Redirector can send source if player allow it and point source file.

PS writing such Redirector… probably 100-200LOC… so waiting CG decision

PPS sorry for my English :slight_smile:


#48

You realize that let alone many other concerns, this is much more work for the staff than either just adding more languages or officially supporting binaries compiled locally, right?


#49

not really
for lang u need right install it, learn args for compiling, dependents and others, workers should know/fix problems with lang and etc.
writing simple TCP-socket (or WebSocket… doesnt matter… some channel) program is easiest in such case. need change some site details for such redirections (as new lang).
and all problems with installation and compilation lays on player shoulders. but they are usually can setup stuff in right way.
current langs list is not changed so “noobs” can write code as usual on site.

UPD:
CG can use Redirector for [Practice] only for example.
I want solve problems with new lang but I dont want wait 6-12 month with unknown result: maybe it will be Typescript maybe Haxe maybe D…


#51

There is a much simpler solution. Codingame just needs to provide a form field for entering the code and a second field where you can enter a docker image uri. This would be a very flexible and secure solution.


#52

It’s not that easy to add or update a language, as you can see below. In short CodinGame is a little oder than docker, so they built their own docker-like system.


#53

While CG has built their own Docker solution due to historic reasons, it should be still possible to add in addition docker side by side.
There are multiple and cheap solutions if CG want to support more languages.
My suggestion was to have a light integration for languages not supported so far: user specifies the source code and a docker image, able to run the source code. Therefore the existing solution does not need to be touched, or only once for the new “generic language”.

@_CG_Thibaud what do you think?


#54

Honestly, I lack the technical knowledge of Docker and of our infrastructure to tell you if it’s feasible. I’ve learned though that there usually is no simple solution to any problem like this.

If there was a simple way to use the Docker technology (that we actually use for Tech.io) for CodinGame, we would have done it already.


#55

Use a docker technology like andre2007 says will be used by a very small part of the community. And it won’t be supported during contest since codingame need an access to the source code to read it and you can add any file you want in your docker image. We will be limited at 100kb for the whole docker image (and not the dockerfile) because codingame won’t increase the size limit just for this feature (i hope you can run your code in alpine).

Too much efforts for a useless feature.


#56

@_CG_Thibaud
Yes, docker and Kubernetes is my day to day businesses. To be very clear, my request is not about changing anything in your existing infrastructure, but about adding an additional component which compiled the given source code to an linux executable which then can be used by your existing infrastructure.

With this rather small enhancement you can hold your promise from the front page “we speak them all!”


#57

@Magus your answer sounds like you misunderstood my proposal. CG has fully access over the source code and user does not have access to the docker image.
The community can create new images for new languages but CG will enable them at the end.

Please see my last answer to @_CG_Thibaud

Update:
I would propose following work flow. In CG editor you choose D as language and write as usual your source code. For D there is a mapping defined to a specific docker image. Therefore the source code is passed to the docker container and the docker container willl return a linux executable. The linix executable is then executed using the existing CG infrastructure.

With this approach CG can support almost any language which compiles to a linux executable. Adding new languages would become very easy.


#58

Quoted for emphasis.


#59

@reCurse
In my opinion CG wants to transport the philosophy:

  • Tackle software problems from complete new angles.
  • Bring developers together to discuss problems as fresh minds will lead to innovative solutions.

If my understanding of CG philosophy is correct, it would be very strange if CG developer are not aligned to this philosophy.

I made a proposal and hopefully it is a fresh idea which can be evaluated.


#60

I’m sorry, but your suggestion is neither a new angle or being innovative. You are relentlessly hammering the same point about using Docker for D support when it has already been addressed many times already.

When the staff is ready to add D support, it will happen. Until then you can only be patient and understanding of a task that might be more difficult than it first seems.


#61

@reCurse
In case you do not belong to CG developer we might wait on an official answer of CG developer support.
@_CG_Thibaud ?

The proposal I gave supports not only D but literal all compiled languages.