What naming convention should I use for a JSON RPC client API designed for multiple languages?

This is the documentation with the original RPC client API specification. The naming convention in the specification is camel case with the first letter in lower case.

Naming conventions might differ in subtle ways for different languages (camel case with vs. w/o capitalization of the first letter), but for some conventions like snake case (Python) or Swift’s Fluent Usage API changing the names in the original specification might increase the cognitive load when using the API for those already familiar with the specification.

When searching for different JSON RPC APIs on GitHub, some implementations seem to take advantage of reflection to intercept method calls and pass them to RPC request “as is” so method names for that language are the same as in the original spec. If reflection is not available the names are hardcoded and are mostly the same as the spec, changing only the capitalization of letters for some languages.

Some examples:

Not using Fluent Design in Swift

https://github.com/fanquake/CoreRPC/blob/master/Sources/CoreRPC/Blockchain.swift
https://github.com/brunophilipe/SwiftRPC/blob/master/SwiftRPC/SwiftRPC+Requests.swift

Not using snake case in Ruby

https://github.com/sinisterchipmunk/bitcoin-client/blob/master/lib/bitcoin-client/client.rb

Changing method names to camel case in C#

https://github.com/cryptean/bitcoinlib/blob/master/src/BitcoinLib/Services/RpcServices/RpcService/RpcService.cs

Go to Source
Author: rraallvv

What is the state of art in Programming Language Package Management?

Apparently there are many programming language specific package managers these days. Each with different takes on versioning, dependency resolution, version pinning / locking etc..

Usually I see Ruby’s bundler and Rust’s cargo heralded quite a lot on sites like Reddit and Hacker news.

What are the current best practices in programming language package management? Eg: local installation V/s global installation of packages, locking to version V/s just requiring major version be the same.

Also what are the important disadvantages and advantages of each of these choices?

Go to Source
Author: Linux Stallman

What’s the easiest language for widest platform distibution at the moment? [closed]

If you were going to write a lightly demanding app (ie. not cutting edge 3D gaming but also not flappy bird), and you wanted to target Windows, macOS, Linux, iOS, Android, and maybe even Switch, what language would you choose? And why?

Back in the day, Java sacrificed speed for easier portability, but what about for today’s modern platforms? Has anyone successfully developed a reliable and relatively easy pipeline to support them?

Go to Source
Author: Django Reinhardt