Engineering, testing and debugging of serial communication. Supports RS-232/422/423/485 as well as TCP/IP Client/Server/AutoSocket, UDP/IP Client/Server/PairSocket and USB Ser/HID. Optimized for simple command sets of e.g. embedded systems.
Pyan takes one or more Python source files, performs a (rather superficial) static analysis, and constructs a directed graph of the objects in the combined source, and how they define or use each other. The graph can be output for rendering by GraphViz or yEd. https://github.com/davidfraser/pyan
Source Code Analysis Tools
Contributor(s): Dave Wichers, itamarlavender, will-obrien, Eitan Worcel, Prabhu Subramanian, kingthorin, coadaflorin, hblankenship, GovorovViva64, pfhorman, GouveaHeitor, Clint Gibler, DSotnikov, Ajin Abraham, Noam Rathaus, Mike Jang
Source code analysis tools, also known as Static Application Security Testing (SAST) Tools, can help analyze source code or compiled versions of code to help find security flaws.
SAST tools can be added into your IDE. Such tools can help you detect issues during software development. SAST tool feedback can save time and effort, especially when compared to finding vulnerabilities later in the development cycle.
PythonTutor.com simplifies the process of debugging by allowing you to step through your code and observe its state at each step. You can set breakpoints and view the values of variables and expressions at any point during the execution. This feature is especially useful for identifying logical errors or unexpected behaviors in your code. By visually inspecting the program’s state, you gain insights into why certain bugs occur, facilitating the debugging process.
As a developer, it is essential to understand code at a glance. Such a quick understanding can be difficult when working with large codebases or particularly complex code. Code visualization can help by providing a way to see the structure and the relationships between different parts of the code.
Several code visualization tools are available, each with strengths and weaknesses. Some tools focus on visualizing code structure, while others focus on showing the relationships between different parts of the code. Still, others allow you to interact with the code, making it easier to understand how it works.
No matter which tool you use, code visualization can be a valuable addition to your toolkit.
Code2flow approximates the structure of projects in dynamic languages. It is not possible to generate a perfect callgraph for a dynamic language.
Detailed algorithm:
Generate an AST of the source code
Recursively separate groups and nodes. Groups are files, modules, or classes. More precisely, groups are namespaces where functions live. Nodes are the functions themselves.
For all nodes, identify function calls in those nodes.
For all nodes, identify in-scope variables. Attempt to connect those variables to specific nodes and groups. This is where there is some ambiguity in the algorithm because it is impossible to know the types of variables in dynamic languages. So, instead, heuristics must be used.
For all calls in all nodes, attempt to find a match from the in-scope variables. This will be an edge.
If a definitive match from in-scope variables cannot be found, attempt to find a single match from all other groups and nodes.
Trim orphaned nodes and groups.
Output results.
Support for Python 2.7+ and Python 3.3+.
Static visualizations of the call graph using various tools such as Graphviz and Gephi.
Execute pycallgraph from the command line or import it in your code.
Customisable colors. You can programatically set the colors based on number of calls, time taken, memory usage, etc.
Modules can be visually grouped together.
Easily extendable to create your own output formats.
You can either use the command-line interface for a quick visualization of your Python script, or the pycallgraph module for more fine-grained settings.
The command-line method of running pycallgraph is:
https://github.com/osteele/callgraph
Callgraph is a Python package that defines a decorator, and Jupyter magic, to draw dynamic call graphs of Python function calls.
It’s intended for classroom use, but may also be useful for self-guided exploration.
Callgraph uses the Python graphviz package. Python graphviz uses the Graphviz package.
https://pypi.org/project/pycflow2dot/
Draw call graphs for C source code using dot and cflow. Typeset PDF with a page per source file and clickable cross-file function references.
Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself.
Cython gives you the combined power of Python and C to let you
write Python code that calls back and forth from and to C or C++ code natively at any point.
easily tune readable Python code into plain C performance by adding static type declarations, also in Python syntax.
use combined source code level debugging to find bugs in your Python, Cython and C code.
interact efficiently with large data sets, e.g. using multi-dimensional NumPy arrays.
quickly build your applications within the large, mature and widely used CPython ecosystem.
integrate natively with existing code and data from legacy, low-level or high-performance libraries and applications.
The Cython language is a superset of the Python language that additionally supports calling C functions and declaring C types on variables and class attributes. This allows the compiler to generate very efficient C code from Cython code. The C code is generated once and then compiles with all major C/C++ compilers in CPython 2.6, 2.7 (2.4+ with Cython 0.20.x) as well as 3.5 and all later versions.
Build a working implementation in Python. You’ll finish this long before you’d finish a C version.
Measure performance with the Python profiler. Fix any problems you find. Change data structures and algorithms as necessary to really do this properly. You’ll finish this long before you finish the first version in C.
If it’s still too slow, manually translate the well-designed and carefully constructed Python into C.
Because of the way hindsight works, doing the second version from existing Python (with existing unit tests, and with existing profiling data) will still be faster than trying to do the C code from scratch.
It wasn’t easy, but [D. Scott Williamson] succeeded in implementing Jacks or Better Video Poker in 10 lines of BASIC, complete with flashing light and sound! Each round, one places a bet then plays a hand of 5-card draw, hoping to end up with Jacks or better.
The software development sector stands at the dawn of a transformation powered by artificial intelligence (AI), where AI agents perform development tasks. This transformation is not just about incremental enhancements but a radical reimagining of how software engineering tasks are approached, executed, and delivered. Central to this shift is introducing AI-driven frameworks that transcend traditional code assistance tools, marking a leap toward more autonomous, efficient, and secure software development methodologies.
The integration of AI in software development has been confined largely to providing code suggestions and aiding in file manipulation. This approach, while beneficial, barely scratches the surface of what is technologically feasible. AI-powered tools operate within a constrained scope, missing out on Integrated Development Environments (IDEs)’ vast capabilities, such as comprehensive code building, testing, and version control operations. This limitation underscores a critical gap in the software development toolkit, where the potential for AI to contribute more profoundly to the development lifecycle remains largely untapped.
No installation required: how WebAssembly is changing scientific computing
Enabling code execution in the web browser, the multilanguage tool is powerful but complicated. https://www.nature.com/articles/d41586-024-00725-1
The US government says it would be better for them if you ceased using C or C++ when programming tools. In a recent report, the White House Office of the National Cyber Director (ONCD) has urged developers to utilize “memory-safe programming languages,” a classification that does not include widely used languages. The recommendation is a step toward “securing the building blocks of cyberspace” and is a component of US President Biden’s cybersecurity plan.
Memory-safety is the defense against flaws and vulnerabilities related to memory access. Examples of this include dangling pointers and buffer overflows. Java’s runtime fault detection checks make it a memory-safe language. Nonetheless, unconstrained pointer arithmetic with direct memory addresses and without bounds checking is supported by both C and C++
Modern software development be like: I wrote 10 lines of code to call an API that calls another API, which calls yet another API that finally turns on a lightbulb. Pray that Cloudflare or AWS will not be down during this operation; otherwise, there will be no light for you. ¯\_(ツ)_/¯
opa Valkoinen talo on Yhdysvalloissa ilmoittanut, että ohjelmistonkehityksessä pitäisi päästä eroon ”muistivaarallisista” C- ja C++-kielistä. Mitä sitten tilalle? Ainakin Googlen vastaus on selvä: Rust on turvallisempi ja myös tehokkaampi kieli koodaustiimien käsissä.
Googlen suunnittelujohtaja Lars Bergstrom kertoi viime viikolla Rust Nation UK -tapahtumassa Lontoossa, mitä kokemuksia hakukonejätillä on projektien siirtämisestä Go- ja C++-koodista Rustiin. Tulokset ovat kiistattomia.
Rust on suorituskykyinen ja tehokkaasti muistia käyttävä kieli. Se on myös hyvin luotettava: muistin käyttöön liittyviä tietoturvaongelmia on hyvin vähän, usein ei ollenkaan. Hyvä dokumentointi ja kääntäjä tekevät siitä myös tehokkaan työkalun.
Tuottavuus on lisäksi monipiippuinen asia. Sitä on mitattu esimerkiksi tuotetuilla koodiriveillä, mikä ei Bergstromin mukaan ole kovin hyvä mittari. Tärkeämpiä ovat koodin laatua, koodin tarkastelun nopeus ja build-aika eli kuinka kauan kestään koodin saamiseen toimivaksi.
If you’ve ever worked on a large project — your own or a group effort — you know it can be difficult to find exactly where you want to be in the source code. Sure, you can use ctags and most other editors have some way of searching for things. But ClangQL from [AmrDeveloper] lets you treat your code base like a database.
Honestly, we’ve often thought about writing something that parses C code and stuffs it into a SQL database. This tool leverages the CLang parser and lets you write queries like:
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.
We are a professional review site that has advertisement and can receive compensation from the companies whose products we review. We use affiliate links in the post so if you use them to buy products through those links we can get compensation at no additional cost to you.OkDecline
1,042 Comments
Tomi Engdahl says:
Open sourcing Pingora: our Rust framework for building programmable network services
https://blog.cloudflare.com/pingora-open-source
Tomi Engdahl says:
https://doc.rust-lang.org/rust-by-example/
Tomi Engdahl says:
28-vuotias ohjelmointikieli päivittyy – “uudet java-versiot ovat paljon aikaisempia parempia”
Jyrki Oraskari29.2.202406:05OHJELMOINTI
Java-kieleen on tarjolla nimettömiä muuttujia, merkkijonomalleja, säikeiden hallintaa, vakaampi natiiviohjelmien tuki ja tapoja koostaa striimejä.
https://www.tivi.fi/uutiset/28-vuotias-ohjelmointikieli-paivittyy-uudet-java-versiot-ovat-paljon-aikaisempia-parempia/33aee0ef-d5f0-4922-a085-6ca7ba6d092a
Tomi Engdahl says:
https://www.warp.dev/blog/warp-for-linux
Tomi Engdahl says:
https://realpython.com/duck-typing-python/
Tomi Engdahl says:
https://www.techradar.com/pro/nvidia-just-released-a-new-code-generator-that-can-run-on-most-modern-cpus
Tomi Engdahl says:
YAT
Yet Another Terminal :: Serial Communication :: Engineer/Test/Debug
https://sourceforge.net/projects/y-a-terminal/
Engineering, testing and debugging of serial communication. Supports RS-232/422/423/485 as well as TCP/IP Client/Server/AutoSocket, UDP/IP Client/Server/PairSocket and USB Ser/HID. Optimized for simple command sets of e.g. embedded systems.
Tomi Engdahl says:
https://hackaday.com/2024/03/04/the-juggler-in-rust/
Tomi Engdahl says:
Python Code Visualization
https://medium.com/@sergey.satskiy/python-code-visualization-83716d6cd713
Tomi Engdahl says:
https://github.com/analysis-tools-dev/static-analysis
Tomi Engdahl says:
https://luminousmen.com/post/python-static-analysis-tools
https://www.codiga.io/blog/static-code-analysis-python/
Tomi Engdahl says:
A Guide to Popular Python Static Analysis Tools
https://blog.codacy.com/python-static-analysis-tools
Tomi Engdahl says:
https://www.kdnuggets.com/2021/12/3-tools-track-visualize-execution-python-code.html
Tomi Engdahl says:
https://dev.to/camelcaseguy/python-static-analysis-tools-275b
https://engineering.fb.com/2020/08/07/security/pysa/
Tomi Engdahl says:
Pyan takes one or more Python source files, performs a (rather superficial) static analysis, and constructs a directed graph of the objects in the combined source, and how they define or use each other. The graph can be output for rendering by GraphViz or yEd.
https://github.com/davidfraser/pyan
Tomi Engdahl says:
Image Processing in Python: Algorithms, Tools, and Methods You Should Know
https://neptune.ai/blog/image-processing-python
Tomi Engdahl says:
https://www.g2.com/categories/static-code-analysis/f/python
https://dzone.com/articles/7-best-python-code-review-tools-recommended-by-dev
https://snyk.io/learn/code-review/python-tools/
https://ai.plainenglish.io/diy-python-code-analyzer-a9c3236e5646
https://github.com/davidfraser/pyan?tab=readme-ov-file
Tomi Engdahl says:
Source Code Analysis Tools
Contributor(s): Dave Wichers, itamarlavender, will-obrien, Eitan Worcel, Prabhu Subramanian, kingthorin, coadaflorin, hblankenship, GovorovViva64, pfhorman, GouveaHeitor, Clint Gibler, DSotnikov, Ajin Abraham, Noam Rathaus, Mike Jang
Source code analysis tools, also known as Static Application Security Testing (SAST) Tools, can help analyze source code or compiled versions of code to help find security flaws.
SAST tools can be added into your IDE. Such tools can help you detect issues during software development. SAST tool feedback can save time and effort, especially when compared to finding vulnerabilities later in the development cycle.
https://owasp.org/www-community/Source_Code_Analysis_Tools
Tomi Engdahl says:
12 Best Code Visualization Tools Reviewed For 2024
https://thectoclub.com/tools/best-code-visualization-tools/
7 tools for visualizing a codebase
https://lmy.medium.com/7-tools-for-visualizing-a-codebase-41b7cddb1a14
Tomi Engdahl says:
Visualize Your Python Code, Debugging for beginners !!!
https://dev.to/coderatul/debug-and-visualize-your-python-code-with-pythontutorcom-29ba
Debugging Made Easier
PythonTutor.com simplifies the process of debugging by allowing you to step through your code and observe its state at each step. You can set breakpoints and view the values of variables and expressions at any point during the execution. This feature is especially useful for identifying logical errors or unexpected behaviors in your code. By visually inspecting the program’s state, you gain insights into why certain bugs occur, facilitating the debugging process.
Tomi Engdahl says:
How to Visualize your codebase
https://markgacoka.medium.com/how-to-visualize-your-codebase-7c4c4d948141
How can code visualization help developers?
As a developer, it is essential to understand code at a glance. Such a quick understanding can be difficult when working with large codebases or particularly complex code. Code visualization can help by providing a way to see the structure and the relationships between different parts of the code.
Several code visualization tools are available, each with strengths and weaknesses. Some tools focus on visualizing code structure, while others focus on showing the relationships between different parts of the code. Still, others allow you to interact with the code, making it easier to understand how it works.
No matter which tool you use, code visualization can be a valuable addition to your toolkit.
https://github.com/scottrogowski/code2flow
Code2flow generates call graphs for dynamic programming language. Code2flow supports Python, JavaScript, Ruby, and PHP.
Code2flow approximates the structure of projects in dynamic languages. It is not possible to generate a perfect callgraph for a dynamic language.
Detailed algorithm:
Generate an AST of the source code
Recursively separate groups and nodes. Groups are files, modules, or classes. More precisely, groups are namespaces where functions live. Nodes are the functions themselves.
For all nodes, identify function calls in those nodes.
For all nodes, identify in-scope variables. Attempt to connect those variables to specific nodes and groups. This is where there is some ambiguity in the algorithm because it is impossible to know the types of variables in dynamic languages. So, instead, heuristics must be used.
For all calls in all nodes, attempt to find a match from the in-scope variables. This will be an edge.
If a definitive match from in-scope variables cannot be found, attempt to find a single match from all other groups and nodes.
Trim orphaned nodes and groups.
Output results.
Tomi Engdahl says:
Python Call Graph
Welcome! Python Call Graph is a Python module that creates call graph visualizations for Python applications.
https://pycallgraph.readthedocs.io/en/master/
Features
Support for Python 2.7+ and Python 3.3+.
Static visualizations of the call graph using various tools such as Graphviz and Gephi.
Execute pycallgraph from the command line or import it in your code.
Customisable colors. You can programatically set the colors based on number of calls, time taken, memory usage, etc.
Modules can be visually grouped together.
Easily extendable to create your own output formats.
You can either use the command-line interface for a quick visualization of your Python script, or the pycallgraph module for more fine-grained settings.
The command-line method of running pycallgraph is:
$ pycallgraph graphviz — ./mypythonscript.py
Generating and using a Callgraph, in Python
https://cerfacs.fr/coop/pycallgraph
https://pypi.org/project/pycallgraph2/
https://github.com/osteele/callgraph
Callgraph is a Python package that defines a decorator, and Jupyter magic, to draw dynamic call graphs of Python function calls.
It’s intended for classroom use, but may also be useful for self-guided exploration.
Callgraph uses the Python graphviz package. Python graphviz uses the Graphviz package.
https://stackoverflow.com/questions/13963321/build-a-call-graph-in-python-including-modules-and-functions
https://github.com/zw-normal/pycallgraph
Tomi Engdahl says:
https://www.freecodecamp.org/news/how-to-automate-call-graph-creation/
https://www.statworx.com/en/content-hub/blog/how-to-automatically-create-project-graphs-with-call-graph/
https://clearbluejar.github.io/posts/callgraphs-with-ghidra-pyhidra-and-jpype/
https://www.fuzzingbook.org/beta/html/ControlFlow.html
Tomi Engdahl says:
https://github.com/chaudron/cally
https://graph-tool.skewed.de/
Tomi Engdahl says:
Call Map is a tool for navigating call graphs in Python, with plans to support other languages.
https://github.com/nccgroup/call_map
Call Map is distributed as a python package for Python 3.5
https://softwarerecs.stackexchange.com/questions/52345/visualize-call-graphs-for-python
https://arxiv.org/pdf/2103.00587.pdf
Tomi Engdahl says:
https://pypi.org/project/pycflow2dot/
Draw call graphs for C source code using dot and cflow. Typeset PDF with a page per source file and clickable cross-file function references.
Tomi Engdahl says:
What is Cython? Python at the speed of C
A superset of Python that compiles to C, Cython combines the ease of Python with the speed of native code. Here’s a quick guide to making the most of Cython in your Python programs.
https://www.infoworld.com/article/3250299/what-is-cython-python-at-the-speed-of-c.html
https://cython.org/
Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself.
Cython gives you the combined power of Python and C to let you
write Python code that calls back and forth from and to C or C++ code natively at any point.
easily tune readable Python code into plain C performance by adding static type declarations, also in Python syntax.
use combined source code level debugging to find bugs in your Python, Cython and C code.
interact efficiently with large data sets, e.g. using multi-dimensional NumPy arrays.
quickly build your applications within the large, mature and widely used CPython ecosystem.
integrate natively with existing code and data from legacy, low-level or high-performance libraries and applications.
The Cython language is a superset of the Python language that additionally supports calling C functions and declaring C types on variables and class attributes. This allows the compiler to generate very efficient C code from Cython code. The C code is generated once and then compiles with all major C/C++ compilers in CPython 2.6, 2.7 (2.4+ with Cython 0.20.x) as well as 3.5 and all later versions.
Tomi Engdahl says:
https://www.codeconvert.ai/python-to-c++-converter
Tomi Engdahl says:
https://stackoverflow.com/questions/4650243/convert-python-program-to-c-c-code
invest” isn’t the right word here.
Build a working implementation in Python. You’ll finish this long before you’d finish a C version.
Measure performance with the Python profiler. Fix any problems you find. Change data structures and algorithms as necessary to really do this properly. You’ll finish this long before you finish the first version in C.
If it’s still too slow, manually translate the well-designed and carefully constructed Python into C.
Because of the way hindsight works, doing the second version from existing Python (with existing unit tests, and with existing profiling data) will still be faster than trying to do the C code from scratch.
Tomi Engdahl says:
Convert Python program to C/C++ code?
https://www.youtube.com/watch?v=yapHztH8nFISign in3:02 / 4:29Convert Python program to C/C++ code? Z0
Python vs C++ Speed Comparison
https://www.youtube.com/watch?v=VioxsWYzoJk
Tomi Engdahl says:
Making Simple Windows Driver in C
https://www.youtube.com/watch?v=GTrekHE8A00
In this video I will demonstrate how you can write a simple “Hello, World” driver for Microsoft Windows 10 using the C Programming Language.
The code is just for fun and not suitable for production.
Tomi Engdahl says:
https://hackaday.com/2024/03/21/video-poker-takes-your-money-in-10-lines-of-basic/
It wasn’t easy, but [D. Scott Williamson] succeeded in implementing Jacks or Better Video Poker in 10 lines of BASIC, complete with flashing light and sound! Each round, one places a bet then plays a hand of 5-card draw, hoping to end up with Jacks or better.
Jacks or Better VIDEO POKER in 10 Lines of Atari BASIC
https://workshop88.com/oldblog/index.php/2024/03/18/jacks-or-better-video-poker-in-10-lines-of-atari-basic/
Tomi Engdahl says:
Microsoft Introduces AutoDev: A Fully Automated Artificial Intelligence-Driven Software Development Framework
https://www.marktechpost.com/2024/03/19/microsoft-introduces-autodev-a-fully-automated-artificial-intelligence-driven-software-development-framework/
The software development sector stands at the dawn of a transformation powered by artificial intelligence (AI), where AI agents perform development tasks. This transformation is not just about incremental enhancements but a radical reimagining of how software engineering tasks are approached, executed, and delivered. Central to this shift is introducing AI-driven frameworks that transcend traditional code assistance tools, marking a leap toward more autonomous, efficient, and secure software development methodologies.
The integration of AI in software development has been confined largely to providing code suggestions and aiding in file manipulation. This approach, while beneficial, barely scratches the surface of what is technologically feasible. AI-powered tools operate within a constrained scope, missing out on Integrated Development Environments (IDEs)’ vast capabilities, such as comprehensive code building, testing, and version control operations. This limitation underscores a critical gap in the software development toolkit, where the potential for AI to contribute more profoundly to the development lifecycle remains largely untapped.
Tomi Engdahl says:
C++ creator rebuts White House warning
Biden administration seems oblivious of the strengths of contemporary C++ and the efforts to provide strong safety guarantees, Bjarne Stroustrup said.
https://www.infoworld.com/article/3714401/c-plus-plus-creator-rebuts-white-house-warning.html
Tomi Engdahl says:
https://www.taiste.fi/post/the-case-of-two-numpads-a-design-detective-story
Tomi Engdahl says:
No installation required: how WebAssembly is changing scientific computing
Enabling code execution in the web browser, the multilanguage tool is powerful but complicated.
https://www.nature.com/articles/d41586-024-00725-1
Tomi Engdahl says:
Best Programming Languages for Data Science and Data Analysis
https://www.analyticsinsight.net/best-programming-languages-for-data-science-and-data-analysis/
Tomi Engdahl says:
With YAMLScript, YAML Becomes a Proper Programming Language
Ingy döt Net is brewing up a scripting language that brings to YAML all the programming capabilities many assumed it already had.
https://thenewstack.io/with-yamlscript-yaml-becomes-a-proper-programming-language/
Tomi Engdahl says:
https://www.nextplatform.com/2024/03/12/the-cloud-outgrows-linux-and-sparks-a-new-operating-system/
Tomi Engdahl says:
The NSA list of memory-safe programming languages has been updated
https://readwrite.com/the-nsa-list-of-memory-safe-programming-languages-has-been-updated/
The US government says it would be better for them if you ceased using C or C++ when programming tools. In a recent report, the White House Office of the National Cyber Director (ONCD) has urged developers to utilize “memory-safe programming languages,” a classification that does not include widely used languages. The recommendation is a step toward “securing the building blocks of cyberspace” and is a component of US President Biden’s cybersecurity plan.
Memory-safety is the defense against flaws and vulnerabilities related to memory access. Examples of this include dangling pointers and buffer overflows. Java’s runtime fault detection checks make it a memory-safe language. Nonetheless, unconstrained pointer arithmetic with direct memory addresses and without bounds checking is supported by both C and C++
Tomi Engdahl says:
Hy is a Lisp dialect that’s embedded in Python.
https://hylang.org/
Tomi Engdahl says:
https://etn.fi/index.php/13-news/16014-nyt-kannattaa-opiskella-naeitae-ohjelmointikieliae
Tomi Engdahl says:
https://hackaday.com/2024/03/25/user-beware-the-fine-line-between-content-and-code/
Tomi Engdahl says:
Modern software development be like: I wrote 10 lines of code to call an API that calls another API, which calls yet another API that finally turns on a lightbulb. Pray that Cloudflare or AWS will not be down during this operation; otherwise, there will be no light for you. ¯\_(ツ)_/¯
Tomi Engdahl says:
https://www.zone.eu/blog/2024/03/01/outdated-php-is-outdated-php/
Tomi Engdahl says:
https://buttondown.email/hillelwayne/archive/why-do-regexes-use-and-as-line-anchors/
Tomi Engdahl says:
https://www.tiobe.com/tiobe-index/
Tomi Engdahl says:
Rust-koodaaminen on kaksi kertaa C++-kehitystä tehokkaampaa
https://etn.fi/index.php/13-news/16042-rust-koodaaminen-on-kaksi-kertaa-c-kehitystae-tehokkaampaa
opa Valkoinen talo on Yhdysvalloissa ilmoittanut, että ohjelmistonkehityksessä pitäisi päästä eroon ”muistivaarallisista” C- ja C++-kielistä. Mitä sitten tilalle? Ainakin Googlen vastaus on selvä: Rust on turvallisempi ja myös tehokkaampi kieli koodaustiimien käsissä.
Googlen suunnittelujohtaja Lars Bergstrom kertoi viime viikolla Rust Nation UK -tapahtumassa Lontoossa, mitä kokemuksia hakukonejätillä on projektien siirtämisestä Go- ja C++-koodista Rustiin. Tulokset ovat kiistattomia.
Rust on suorituskykyinen ja tehokkaasti muistia käyttävä kieli. Se on myös hyvin luotettava: muistin käyttöön liittyviä tietoturvaongelmia on hyvin vähän, usein ei ollenkaan. Hyvä dokumentointi ja kääntäjä tekevät siitä myös tehokkaan työkalun.
Tuottavuus on lisäksi monipiippuinen asia. Sitä on mitattu esimerkiksi tuotetuilla koodiriveillä, mikä ei Bergstromin mukaan ole kovin hyvä mittari. Tärkeämpiä ovat koodin laatua, koodin tarkastelun nopeus ja build-aika eli kuinka kauan kestään koodin saamiseen toimivaksi.
Tomi Engdahl says:
https://etn.fi/index.php/13-news/16042-rust-koodaaminen-on-kaksi-kertaa-c-kehitystae-tehokkaampaa
Tomi Engdahl says:
Query Your C Code
https://hackaday.com/2024/04/08/query-your-c-code/
If you’ve ever worked on a large project — your own or a group effort — you know it can be difficult to find exactly where you want to be in the source code. Sure, you can use ctags and most other editors have some way of searching for things. But ClangQL from [AmrDeveloper] lets you treat your code base like a database.
Honestly, we’ve often thought about writing something that parses C code and stuffs it into a SQL database. This tool leverages the CLang parser and lets you write queries like:
SELECT * FROM functions
https://github.com/AmrDeveloper/ClangQL