Is there a page or document describing incompatibilities between Julia versions?
Specifically, things like factorial() and lfact() seem to have silently disappeared between the 0.6 and 0.7 documentation.
The Julialang/julia/NEWS.md page is used to describe to developers the language changes between the versions.
Related
While OpenFOAM 10 (release date July 2022) is located on OpenFOAM.org and GitHub,
OpenFOAM® v2212 (published December 2022) is from OpenFOAM.com and on GitLab.
Both versions sharing an unofficial Wikipedia representation on Unofficial OpenFOAM wiki.
Is there a difference on results from each versions implemented solvers running and if so, what are tasks for providing compatibility between these newest release versions (also considering source included tutorials)?
This is an age old question (openfoam.org vs openfoam.com). The direct answer can be found in the links below.
https://www.cfd-online.com/Forums/openfoam/197150-openfoam-com-versus-openfoam-org-version-use.html
https://www.reddit.com/r/OpenFOAM/comments/o6spq5/openfoamorg_versus_openfoamcom/
Basically, both are two forks of the same software, with some code added or removed. Community contribution is higher in OpenFOAM.org's version and some advanced solvers are added in OpenFOAM.com's version.
They are very similar in most aspects and differ only in very advanced solvers / simulations. By the time people start to understand those differences, they can choose the version for themselves.
Also, note that ESI-OpenFOAM can and will contain code from OpenFOAM.org, but not the other way around. The code added in ESI-OpenFOAM stays only there. It is one of the reasons it is used more in industries.
For basic usage or learning, both versions are nearly equal. I generally stick with the OpenFOAM.org's version as it is used in more academia (from personal experiences) and it is more accessible (the documentation and tutorials) (personal opinion).
To find what exact code differs for both versions, we have to see the commit history and examine solvers manually. I'll keep on adding to this answer as I find more stuff (asking friends and professors).
I struggled with this for hours before finding out that you have to use from_ instead of from when using gremlin javascript.
After digging through the source code I finally found out that the code is using from_ instead of from (see code). Since I'm a newbie this comes off as strange because its counterpart to is still to (and not to_, see code here)
I googled everywhere but couldn't find the reason why this works this way, and feel uneasy about using the underscore version since most of the times underscores denote private methods that users should not really trust.
Also, is there an official documentation page for gremlin javascript somewhere I'm missing? I'm concerned I may run into these problems in the future and there's not really an official documentation for the JavaScript version and I may need to go through the same struggle. I like gremlin, but if the JavaScript version is not stable and should not be used, I might as well look into other alternatives than Tinkerpop suites.
Gremlin Language Variants (GLVs) are given some latitude in terms of how they implement the Gremlin language so that it feels as close to the syntax and programming idioms of the native language and thus avoid too much pollution from Java. In other words, if you're using gremlin-javascript it should feel like your coding in JS and not Java. So, you will see slight differences among GLVs from time to time.
So, with respect to from_ specifically, we typically use an underscore when we have a conflict in a native language with a reserved keyword. In Java from is fully acceptable, but in other languages it is not. For Javascript, from is currently not a reserved word, but we are preparing for the eventual form of import ... from which is coming in the future.
As for documentation, I'm not aware of too much more than what you have already found on the TinkerPop web site. We hope to have more examples and information available in our next release.
I have a code that is written by Julia V.03, I am learning Julia by the last version of that, I want to upgrade a code from V.03 to V/06 I actually don't know what should I do or what should I mention. Is there any guide for that? or What is different between these versions?
Lots of things have changed, but many of them have had good deprecations along the way. If you have a large codebase, I think the best path forward here is to incrementally step through all the major releases — 0.4, 0.5, and 0.6. While that may seem like 3 times the work, I think it'd actually be easier. Many deprecation warnings tell you exactly how you should re-write your code to update it. If you skip a release, you'll end up with much less helpful errors or the wrong behavior without warning.
There are also some breaking changes that did not get deprecations — you'll also want to follow along with the NEWS.md file for each release (or the archive in HISTORY.md) to ensure that you've also addressed the breaking changes that didn't get deprecations.
I am writing a big project in Julia at the moment and the only option that I found to debug this code is Debug.jl. It is sooo(!) overwhelming to debug this code without a debugger like the one MATLAB has.
Are there any such debugging tools? I could adopt them even if they are in alpha stage.
Anyone has timeline estimates as to when they are planned to appear?
There is work in progress by Keno Fischer (one of the core Julia developers) on a debugger called Gallium.jl.
This is a very complicated piece of work, due to the nature of Julia as a JIT-compiled language; for example, as one piece, it will include a C++ REPL! As I understand it, there are still some technical issues that prevent it being used, but it will hopefully be available for general consumption "soon".
See this video for a demo, and this discussion on the julia-dev mailing list for the latest news.
When jQuery, Microsoft or some other software company says:"this function is deprecated".
For example, when there is a func1 that works fine in version 1.0 and is deprecated in version 2.0 that also introduces a new func2:
Should func1 also be included in version 2.0 for backwards compatibility?
Is func1 supposed to work without bugs in version 2.0? ( func2 is fine with versions 2 and 1)
Is func2 allowed not to work correctly in version 2.0?
What does deprecation really mean and does it mean the same in all organizations?
For ex. the live method in jQuery doesn't work in 1.7 in IE but it does in Chrome).
I think the Wikipedia-article on Deprecation answers this one pretty well:
In the process of authoring computer software, its standards or documentation, deprecation is a status applied to software features to indicate that they should be avoided, typically because they have been superseded. Although deprecated features remain in the software, their use may raise warning messages recommending alternative practices, and deprecation may indicate that the feature will be removed in the future. Features are deprecated—rather than immediately removed—in order to provide backward compatibility, and give programmers who have used the feature time to bring their code into compliance with the new standard.
Deprecated means they don't recommend using it, and that it isn't undergoing further development. But it should not work differently than it did in a previous version unless documentation explicitly states that.
Yes, otherwise it wouldn't be called "deprecated"
Unless stated otherwise in docs, it should be the same as before
No, but if there were problems in v1 they aren't about to fix them
If there are true answers to those questions, it would be different per software vendor and would be defined by the vendor. I don't know of any true industry standards that are followed with regards to this matter.
Historically with Microsoft, they'll mark something as deprecated and state they'll remove it in a future version. That can be several versions before they actually get rid of it though.
Deprecated in general means "don't use it".
A deprecated function may or may not work, but it is not guaranteed to work.
The simplest answer to the meaning of deprecated when used to describe software APIs is:
Stop using APIs marked as deprecated!
They will go away in a future release!!
Start using the new versions ASAP!!!